




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
C+程序設(shè)計例題1#include/類的定義格式class jk1public:int a;int b; void f1()cout注意函數(shù)的書寫格式n; void f2()cout注意中英文標(biāo)點符號n;void main() jk1 x;x.a=66;x.b=88;coutx.ax.b;x.f1();x.f2();/*1. 格式:class jk1 . ; (1)關(guān)鍵字 (2)取的類名 (3)對類的描述 (4)類定義的結(jié)束2. 英文標(biāo)點符號3. 類定義的另一種形式 void main() class jk1public:char *str;double x;x; x.str=五羊開泰;x.x=3.1415926;coutx.strx.x; */2 #include/公有屬性、私有屬性、保護屬性class ok2public:int a; void fa()cout在任何函數(shù)中都可以訪問它n;private:int b;void fb()cout只有成員函數(shù)才可以訪問n;protected:int c; void fc()cout除了成員函數(shù)可以訪問外,派生類的成員函數(shù)才可以訪問n;void main()ok2 x;x.a=11;coutx.a;x.fa();x.b=22;coutx.b;x.fb();x.c=33;coutx.c;x.fc();3#include/成員的私有屬性使用#includeclass ok3 char a20;int b;void kk()cout我是私有函數(shù),不可隨隨便便調(diào)用喲。n;public:void inab(char aa,int bb)strcpy(a,aa);b=bb; void outab()coutaendlbendl;kk();void main()ok3 x;x.inab(1234567,888);x.outab();4 #include/成員函數(shù)的另一種書寫格式class ok4 int a;int b;public: void f(int x)a=x;coutaendl; void g(int y); void h();void ok4:g(int y)b=y;coutbendl;void ok4:h()cout我是函數(shù)定義語句,在類中應(yīng)該有函數(shù)聲明語句endl;void main()ok4 x;x.f(100);x.g(200);x.h();5 #include/內(nèi)聯(lián)函數(shù)class ok5public:int a; void cina(int aa)a=aa;cout在類中定義的成員函數(shù)默認(rèn)為內(nèi)聯(lián)函數(shù); void out(); ;inline void ok5:out()cout在類外定義的成員函數(shù)要用inline聲明才能為內(nèi)聯(lián)函數(shù);void main()ok5 x;x.cina(88);coutx.aendl;x.out();6 #includeiostream.h/構(gòu)造函數(shù)一class ok6private:int a;double b;public:ok6()a=0;b=0.0;cout我是構(gòu)造函數(shù); void cinb(int aa,double bb)a=aa;b=bb; void outab()coutabendl; ;void main()ok6 x;x.cinb(99,3.1415926);x.outab();7 #include/構(gòu)造函數(shù)二class ok7private:int a;double b;public:ok7(int x,double y)a=x;b=y;cout二個參數(shù)endl; ok7(int x)a=x;cout一個參數(shù)endl; ok7()cout不帶參數(shù)endl; void out()coutabendl; ;void main()ok7 x(77,3.1415926);x.out();ok7 y(88);y.out();ok7 z;z.out();8 #include/拷貝構(gòu)造函數(shù)class ok8 int a;public:ok8(int aa)a=aa;cout我是構(gòu)造函數(shù)n; ok8(ok8 &x)a=x.a;cout我是拷貝構(gòu)造函數(shù)n; void out()couta;void main() ok8 x(100);x.out();/調(diào)用構(gòu)造函數(shù)ok8 y(x);y.out();/調(diào)用拷貝構(gòu)造函數(shù)ok8 z=x;z.out();/調(diào)用拷貝構(gòu)造函數(shù)9 #include/釋放函數(shù),對象釋放時調(diào)用它,順序相反class ok int a;public:ok(int aa)a=aa; ok()couta可以調(diào)用,不可重載!n;void main() ok x1(1),x2(2);x1.ok();ok y(33);x2.ok();10 #include/典型的構(gòu)造函數(shù)的舉例#includeclass Person char name10,sex;int age;public:Person(char *n,int a,char s) strcpy(name,n);age=a;sex=s; Person() Person()cout再見!n; void print()coutname/age/sexendl;void main()Person w(王老五,28,m);Person c(翠花,20,w);w.print();c.print(); w.Person(); Person x; x=w; x.print();11 #include/對象成員的訪問、THIS指針、對象數(shù)組、動態(tài)對象#includeclass pb1 public: int a;double b; pb1(int aa,double bb)a=aa;b=bb;couta好!n; pb1()cout好好!n; pb1()couta再會!n; void out()couta b全局變量void main()pb1 x(1,1.1);x.out();/靜態(tài)分配內(nèi)存,用棧(內(nèi)存中的一個區(qū)域),分配速度快但不靈活-局部變量pb1 *p;p=new pb1;p-a=2;p-b=2.2;p-out();delete p;/動態(tài)分配內(nèi)存,用堆(自由內(nèi)存),比較靈活但分配速度慢-局部變量pb1 a2;a0.a=66;a0.b=66.66;a1.a=88;a1.b=88.88;a0.out();a1.out();pb1 *b2;b0=new pb1;b1=new pb1;12 #include/靜態(tài)成員(數(shù)據(jù)、函數(shù))class wg double m;static double sm;static int sn;public:wg(double m0)m=m0;sm+=sm+m0;sn+; wg()sm-=sm-m;sn-; static void disp() cout賣瓜的總重量為:smendl; cout賣瓜的總數(shù)為:snendl; ;double wg:sm=0;int wg:sn=0;void main()wg x1(5.5),x2(6.6),x3(2.2),x4(3.5);x2.wg();x1.disp();x4.disp();13 #include/友元函數(shù)#includeclass girl char * name,* dial;public:girl(char *n,char *d) name=new charstrlen(n)+1;strcpy(name,n); dial=new charstrlen(d)+1;strcpy(dial,d); friend void disp(girl x);void disp(girl s) s.dialendl;void main()girl w(小白菜;disp(w); /*friend void disp(girl&x);在girl類中聲明disp()為girl類的友元函數(shù)*/14 #include#includeclass boy;/必須先聲明class girl char * name,* dial;public:girl(char *n,char *d) name=new charstrlen(n)+1;strcpy(name,n); dial=new charstrlen(d)+1;strcpy(dial,d); friend boy;/聲明類boy為本類的友元類;class boy char * name;int age;/定義友元類,最好在類girl之后定義public:boy(char *n,int a) name=new charstrlen(n)+1;strcpy(name,n);age=a; void disp(girl s)coutboy的name age為:name ageendl; coutgirl的name dirl為:s.dialendl;/本函數(shù)中用到了類girl,即使類boy在類girl之前定義,本函數(shù)的定義也必須類girl之后定義;void main()boy b(趙六,18);girl g(小白菜;b.disp(g); 15 #include#includeclass girl;/必須先聲明class boy char * name;int age;/必須在類girl之前定義public:boy(char *n,int a) name=new charstrlen(n)+1;strcpy(name,n);age=a; void disp(girl s);/此為聲明語句,其函數(shù)定義必須在類girl之后;class girl char * name,* dial;public:girl(char *n,char *d) name=new charstrlen(n)+1;strcpy(name,n); dial=new charstrlen(d)+1;strcpy(dial,d); friend void boy:disp(girl s);void boy:disp(girl s)/定義成員友元函數(shù)coutboy的name age為:name ageendl;coutgirl的name dirl為: s.dialendl;void main()boy b(趙六,18);girl g(小白菜;b.disp(g); /*friend void disp(girl&x);在girl類中聲明disp()為girl類的友元函數(shù)*/16 #include/順序棧、靜態(tài)對象class stack int a10,top;public: stack()top=-1;void push(int data)if(top=-1)&(top9)top+;atop=data;coutatop-1)&(top=9)coutatop出棧了!n;top-;else cout已到棧底再也無法出棧!n;void main()stack x;x.push(135);x.push(246);x.pop();x.pop();x.pop();17 #include/動態(tài)棧class stack int size,*root, *top;public: stack(int n)size=n;top=root=new intsize;stack()delete root;void push(int data)if(top=root+size)cout棧已滿無法入棧!n;else *top+=data;coutdata入棧!n; void pop()if(top=root)cout已到棧底再也無法出棧!n;else top-;cout*toppush(135);p-push(246);p-pop();p-pop();p-pop();delete p;18 #includestruct workerschar *num;char *name;ift age;short key;unionchar *cadre;char *teacher;int worker;a6;void input()a0.num=2001001;=趙向;a0.age=18;a0.key=1;a0.cadre=縣級;a1.num=2001002;=錢多;a1.age=18;a1.key=2;a1.teacher=教授;a2.num=2001003;=孫子;a2.age=18;a2.key=3;a2.worker=18;a3.num=2001004;=李四;a3.age=18;a3.key=1;a3.cadre=科級;a4.num=2001005;=周五;a4.age=18;a4.key=2;a4.teacher=講師;a5.num=2001006;=武王;a5.age=18;a5.key=3;a5.worker=22;void output()cout編號 姓名 年齡 類別 級別 endl;for(int i=0;i6;i+)coutai.num ai.age ai.key ;switch(ai.key)case 1:coutai.cadreendl;break;case 2:coutai.teacherendl;break;case 3:coutai.workerendl;break;void main() input();output();19 #includestruct workerschar num6;char name12;char sex;short kind;unionchar cadre8;char teacher123short worker;a20;void input(int n)for(int i=0;in;i+)cout請輸入第i+1條記錄:endl;coutai.num;;coutai.sex;coutai.kind;switch(ai.kind) case 1:coutai.cadre;break;case 2:coutai.teacher;break;case 3:coutai.worker;break;void output(int n)for(int i=0;in;i+)coutai.num ai.sex ;switch(ai.kind) case 1:coutai.cadre;break;case 2:coutai.teacher;break;case 3:coutai.worker;break;coutendl;void count(int n)int c1=0,c2=0,c3=0;for(int i=0;in;i+)switch(ai.kind)case 1:c1+;break;case 2:c2+;break;case 3:c3+;break;cout干部:c1/教師:c2/工人:c3endl;void main() input(3);output(3);count(3);20 #includeclass ok2public:int a3 void fa()cout公有屬性n;private:int b;void fb()cout私有屬性n;protected:int c; void fc()cout保護屬性n;void main()ok2 x;x.a=11;coutx.a;x.fa();x.b=22;coutx.b;x.fb();x.c=33;coutx.c;x.fc();/*公有屬性的成員:在任何函數(shù)中都可以使用(出現(xiàn))私有屬性的成員:只有在成員函數(shù)和友元函數(shù)中使用保護屬性的成員:除了同私有屬性的成員之外,派生類(子類)中也可以使用*/21 #include/給類的數(shù)據(jù)成員賦初值#includeclass ok2 int a;double b;char *c; char *d;public:ok2(int aa=0,double bb=0.0,char *cc=$,char *dd=$) a=aa;b=bb;c=cc;d=new charstrlen(dd)+1;strcpy(d,dd); void disp()couta b c dendl; ;void main()ok2 x1(1,1.1,李四,計算機系);x1.disp();ok2 x2(2,2.2,李四);x2.disp();ok2 x3(3,3.3);x3.disp();ok2 x4(4);x4.disp();ok2 x5;x5.disp();/參數(shù)個數(shù)的變化及通過類的構(gòu)造函數(shù)給類的數(shù)據(jù)成員賦初值的形式(初值不可省略)22 #include/類的繼承class AAA private: int a;protected: int b;public: int c; void f()cout少壯不努力n;class BBB:public AAApublic: void g()coutabc;cout不可見 公-公 保護-保護 /父類以private方式派生出子類: 私-不可見 公-私 保護-私/父類以protected方式派生出子類:私-不可見 公-保護 保護-保護/保護屬性:只能被本類的成員函數(shù)和友元函數(shù)以及派生類的成員函數(shù)和友元函數(shù)所使用/*class ccc:public BBBspublic:void ggg()coutabyendl;cout老大徒傷悲n;*/23 #include/在類的繼承過程中構(gòu)造函數(shù)的調(diào)用#includeclass AA int a;public:AA()coutAA好endl; AA()coutAA再見endl; ;class BB:public AA int b;public:BB()coutBB好endl; BB()coutBB再見endl;void main() BB x;/構(gòu)造函數(shù)和釋放函數(shù)是不能繼承的24 #include/在類的繼承過程中構(gòu)造函數(shù)的調(diào)用#includeclass AAA public:char name20;int age; AAA(char *n,int x)strcpy(name,n);age=x; AAA() AAA() void list()coutname age;class BBB:public AAA int nn;public:BBB(char *n,int x,int x2):AAA(n,x)nn=x2; void disp()cout ;x.age=18;x.list();x.disp();/構(gòu)造函數(shù)和釋放函數(shù)是不能繼承的25 #include/通過派生類給基類的數(shù)據(jù)成員賦初值#includeclass person char *name;int age;public:person(char *n,int x) name=new charstrlen(n)+1;strcpy(name,n)3age=x; person()delete name; void disp()coutname age ; ;class employee:public person char *department;double salary;public:employee(char *n,int x,char *p=,double y=0):person(n,x) department=new charstrlen(p)+1;strcpy(department,p);salary=y; employee()delete department; void disp()cout department salaryendl; ;void main()employee e1(李四,20,計算機系,888.88);e1.person:disp();e1.disp();/當(dāng)一個派生類的對象中含有基類的數(shù)據(jù)成員的值時,必須定義一個構(gòu)造函數(shù),能夠通過派生類的構(gòu)造函數(shù)調(diào)用基類的構(gòu)造函數(shù)26 #include/多繼承(多基派生)#includeclass base public:int x0; base(int x0)x0=x0;cout是base!n; base()cout我是base!n; base();class A:virtual public base public:int a; A(int x1)a=x1;cout是A!n; A()cout我是A!n; A();class B:virtual public base public: int b; B(int x2)b=x2;cout是B!n; B()cout我是B!n;class AB:public B,public A int ab;public:AB(int x0,int x1,int x2,int x3):B(x2),A(x1),base()ab=x3; AB() ;void main()AB x(0,1,2,3);AB y;27 #include/繼承問答一class AAA public: void f()coutAAAn; ;class BBB:public AAA public: void f()coutBBBn; ;class CCC:public BBB public: void f()cout不可見 公-公 保護-保護 /父類以private方式派生出子類: 私-不可見 公-私 保護-私/父類以protected方式派生出子類:私-不可見 公-保護 保護-保護/x.AAA:f();x.BBB:f();x.CCC:f();(可略)28 #include/繼承問答二 虛基類class AAA public: void f()cout好好學(xué)習(xí),天天向上!n; ;class BBB:virtual public AAA ;class CCC:virtual public BBB ;void main()CCC x;x.f();/在此,第二個virtual略不略一樣29 #include/由對象為結(jié)點組成的鏈表#includeclass personchar name20;int age;person * next;public:person(char *nm,int n,person *er) strcpy(name,nm);age=n;next=er; void disp()cout|nameage|endl; static void disp(person *s) while(s)coutname/agenext;void main()person x3(王五,28,NULL);person x2(李四,20,&x3);person x1(張三,18,&x2);person *head=&x1;x2.disp();x3.disp(head);30 #include/局部成員屏蔽外部成員,靜態(tài)綁定:在編譯時就實現(xiàn)了綁定class Apublic:int abc;A()coutA好!n; ;class B:public Apublic:int abc;B():A()coutB好!n; ;class C:public Bpublic:int abc;C():B()coutC好!n; ;void main() C x;x.abc=11;coutx.abcendl;31 #include/動態(tài)聚束(綁定):在編譯時還無法確定綁定對象,只有在運行時才能夠?qū)崿F(xiàn)綁定class basepublic: void f()cout1basen; ;class A:public basepublic: void f()cout2An; ;class B:public Apublic:void f()cout3Bn; ;class C:public Bpublic:virtual void f()cout4Cn; ;class D:public Cpublic:void f()coutf();p=&a;p-f();p=&b;p-f();p=&c;p-f();p=&d;p-f(); 32 #include/動態(tài)聚束的變化class base0public:virtual void v()coutbase好!n; ;class base1:public base0public:void v()coutbase1好!n; ;class A1:public base1public:void v()coutA1好!n; ;class A2:public A1public:void v()coutA2好!n; ;class B1:public base1public:void v()coutB1好!n; ;class B2:public B1public:void v()coutv();A2 a2;pb=&a2;pb-v();B1 b1;pb=&b1;pb-v();B2 b2;pb=&b2;pb-v(); */base1 *pb; A1 a1;pb=&a1;pb-v();A2 a2;pb=&a2;pb-v();B1 b1;pb=&b1;pb-v();B2 b2;pb=&b2;pb-v(); base1 x;pb=&x;pb-v();33 #include/動態(tài)聚束的變化class Apublic:virtual void v1()coutA中的v1n;a1(); void a1()coutA中的a1n;v2(); virtual void v2()coutA中的v2n; ;class B:public Apublic:void b1()coutB中的b1n;v2(); void v2()coutB中的v2n; void v1()coutB中的v1n;a1(); ;void main() A a;a.v1();B b;b.v1();34#include/動態(tài)聚束的變化class basepublic:base() virtual void v1()coutbase中的v1n; ;class A:public basepublic:A():base()coutA中的v1n;v1(); virtual void v1()coutA中的v1n; ;class B:public Apublic:B():A()coutA中的v1n;A:v1();void v1()coutB中的v1n; ;void main() A a;B b;35 #include/多基繼承中的指針使用class basepubli
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 賽車比賽試題及答案
- 銷售合同簽訂培訓(xùn)
- 樁核冠修復(fù)病例分析與應(yīng)用
- e簽寶java面試題及答案
- 生物高考試題及答案
- GUI考試題及答案
- 美團java面試題及答案2025年
- 采礦學(xué)考試題及答案
- 各大公司java面試題及答案
- 電商知識產(chǎn)權(quán)保護與電子商務(wù)平臺知識產(chǎn)權(quán)保護與知識產(chǎn)權(quán)保護戰(zhàn)略研究與應(yīng)用報告
- 慢性硬膜下血腫護理要點大揭秘
- “微”力量微博營銷
- 2022-2023學(xué)年山東省菏澤市成武縣人教版四年級下冊期末考試數(shù)學(xué)試卷(解析版)
- 2023建筑業(yè)10項新技術(shù)
- 預(yù)防醫(yī)學(xué)英文版課件:Occupational hazards injury
- 無人船自主航行設(shè)計方案
- NBT10497-2021 水電工程水庫塌岸與滑坡治理技術(shù)規(guī)程
- 陜西省銅川市初中語文八年級期末高分試卷詳細(xì)答案和解析
- 《非物質(zhì)文化遺產(chǎn)數(shù)字化保護 數(shù)字資源采集和著錄 第9部分:傳統(tǒng)技藝》
- 小企業(yè)會計準(zhǔn)則轉(zhuǎn)為企業(yè)會計準(zhǔn)則實務(wù)操
- 江蘇省揚州市邗江區(qū)三校2023年高一數(shù)學(xué)第二學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
評論
0/150
提交評論