4[1].3+構(gòu)造函數(shù)和析構(gòu)函數(shù)

4[1].3+構(gòu)造函數(shù)和析構(gòu)函數(shù)

ID:5563966

大?。?55.00 KB

頁(yè)數(shù):16頁(yè)

時(shí)間:2017-11-18

4[1].3+構(gòu)造函數(shù)和析構(gòu)函數(shù)_第1頁(yè)
4[1].3+構(gòu)造函數(shù)和析構(gòu)函數(shù)_第2頁(yè)
4[1].3+構(gòu)造函數(shù)和析構(gòu)函數(shù)_第3頁(yè)
4[1].3+構(gòu)造函數(shù)和析構(gòu)函數(shù)_第4頁(yè)
4[1].3+構(gòu)造函數(shù)和析構(gòu)函數(shù)_第5頁(yè)
資源描述:

《4[1].3+構(gòu)造函數(shù)和析構(gòu)函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、版本號(hào):V2006.12生醫(yī)學(xué)院06級(jí)C++程序設(shè)計(jì)copyright:柏毅C++程序設(shè)計(jì)(第2版)第4章類與對(duì)象在C++中,對(duì)象的數(shù)據(jù)成員的初始化可以有三種方法:使用初始化數(shù)據(jù)列表的方法;通過構(gòu)造函數(shù);通過對(duì)象的拷貝初始化函數(shù);構(gòu)造函數(shù):是在類體中說明的一種特殊的成員函數(shù),其功能是在創(chuàng)建類的對(duì)象時(shí),使用給定的值將對(duì)象初始化。在定義一個(gè)類時(shí),可以根據(jù)需要定義一個(gè)或多個(gè)構(gòu)造函數(shù)(重載構(gòu)造函數(shù))。構(gòu)造函數(shù)與類的成員函數(shù)一樣,可以在類中定義,也可以在類外定義。4.3構(gòu)造函數(shù)與析構(gòu)函數(shù)4.3.1構(gòu)造函數(shù)及對(duì)象的初始化一般格式為:Class

2、Name(<形參表>){……}或者:ClassName::ClassName(<形參表>){……}例4.5使用構(gòu)造函數(shù)對(duì)新產(chǎn)生的對(duì)象初始化#includeclassC{inti;public:char*name;protected:floatnum[2];public:C(inta,char*s,floatx,floaty){i=a;name=s;num[0]=x;num[1]=y;}voidPrint(void){cout<

3、num[1]<<'';}};voidmain(void){Cc1(25,"name",77.8f,99.56f);c1.Print();}運(yùn)行結(jié)果:25Name77.899.56構(gòu)造函數(shù)的函數(shù)名必須與類名相同。系統(tǒng)在生成類的對(duì)象時(shí)自動(dòng)調(diào)用類的構(gòu)造函數(shù),完成初始化對(duì)象的成員數(shù)據(jù)工作。構(gòu)造函數(shù)的定義不能指定函數(shù)的返回值類型,也不能指定為void類型。構(gòu)造函數(shù)可以不帶參數(shù),也可以帶若干個(gè)參數(shù)或指定參數(shù)的缺省值,構(gòu)造函數(shù)允許重載。若定義的類要用來說明類的對(duì)象時(shí),構(gòu)造函數(shù)必須是公有的成員函數(shù)。如果定義的類僅用于派生其他類時(shí),則可將構(gòu)造函

4、數(shù)定義為保護(hù)的成員函數(shù)。對(duì)構(gòu)造函數(shù)的幾點(diǎn)說明:#includeclassRectangle{intLeft,Right,Top,Bottom;public:Rectangle(intL,intR,intT,intB){Left=L;Right=R;Top=T;Bottom=B;cout<<"調(diào)用帶參數(shù)的構(gòu)造函數(shù)(全局)!";}Rectangle(intL,intR,intT){Left=L;Right=R;Top=T;Bottom=0;cout<<"調(diào)用帶參數(shù)的構(gòu)造函數(shù)(靜態(tài))!";}例4.6產(chǎn)生全

5、局對(duì)象、靜態(tài)對(duì)象和局部對(duì)象Rectangle(intL,intR){Left=L;Right=R;Top=0;Bottom=0;cout<<"調(diào)用帶參數(shù)的構(gòu)造函數(shù)(局部)!";}Rectangle(){Left=0;Right=0;Top=0;Bottom=0;cout<<"調(diào)用不帶參數(shù)的構(gòu)造函數(shù)!";}voidPrint(void){cout<

6、進(jìn)入main()之前調(diào)用voidf1(void){cout<<"進(jìn)入函數(shù)f1()";staticRectangler5(200,200,500);//靜態(tài)對(duì)象r5只在首次調(diào)用函數(shù)f1并產(chǎn)生該對(duì)象時(shí)調(diào)用構(gòu)造函數(shù);r5.Print();Rectangler6(100,100);//局部對(duì)象r6,每次調(diào)用f1時(shí)都要調(diào)用構(gòu)造函數(shù)。r6.Print();}voidmain(void){cout<<"進(jìn)入主函數(shù)main()";r4.Print();f1();Rectangler1(100,200);r1.Print();Rectang

7、ler2;r2.Print();f1();}說明:在函數(shù)f1中,B行中定義的靜態(tài)對(duì)象r5是在首次調(diào)用函數(shù)f1并產(chǎn)生該對(duì)象時(shí)調(diào)用構(gòu)造函數(shù)的,第二次調(diào)用函數(shù)f1時(shí),不再重新產(chǎn)生對(duì)象r5。而局部對(duì)象r6,每次調(diào)用函數(shù)f1時(shí)都要調(diào)用構(gòu)造函數(shù)。ClassName::ClassName(){};缺省構(gòu)造函數(shù)并不對(duì)所產(chǎn)生對(duì)象的數(shù)據(jù)進(jìn)行任何初始化操作。說明:在定義類時(shí),若定義了類的構(gòu)造函數(shù),則系統(tǒng)不產(chǎn)生缺省的構(gòu)造函數(shù)。若定義了不帶參數(shù)或各參數(shù)均有缺省值的構(gòu)造函數(shù),同為缺省構(gòu)造函數(shù)。產(chǎn)生對(duì)象時(shí),由于系統(tǒng)必定要調(diào)用構(gòu)造函數(shù),因此任一對(duì)象的構(gòu)造函數(shù)必須

8、唯一。缺省的構(gòu)造函數(shù)在定義類時(shí),若沒有定義類的構(gòu)造函數(shù),則編譯器自動(dòng)產(chǎn)生一個(gè)缺省的構(gòu)造函數(shù),其格式為:classE{intx,y;Public:E(inta,intb){x=a;y=b;}voidP(void){cout<

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。