c構(gòu)造函數(shù)與析構(gòu)函數(shù)

c構(gòu)造函數(shù)與析構(gòu)函數(shù)

ID:36322128

大?。?94.31 KB

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

時(shí)間:2019-05-09

c構(gòu)造函數(shù)與析構(gòu)函數(shù)_第1頁(yè)
c構(gòu)造函數(shù)與析構(gòu)函數(shù)_第2頁(yè)
c構(gòu)造函數(shù)與析構(gòu)函數(shù)_第3頁(yè)
c構(gòu)造函數(shù)與析構(gòu)函數(shù)_第4頁(yè)
c構(gòu)造函數(shù)與析構(gòu)函數(shù)_第5頁(yè)
資源描述:

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

1、第十章構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)是在類體中說(shuō)明的兩種特殊的成員函數(shù)。構(gòu)造函數(shù)是在創(chuàng)建對(duì)象時(shí),使用給定的值來(lái)將對(duì)象初始化。析構(gòu)函數(shù)的功能正好相反,是在系統(tǒng)釋放對(duì)象前,對(duì)對(duì)象做一些善后工作。構(gòu)造函數(shù)是類的成員函數(shù),系統(tǒng)約定構(gòu)造函數(shù)名必須與類名相同。構(gòu)造函數(shù)提供了初始化對(duì)象的一種簡(jiǎn)單的方法。構(gòu)造函數(shù)可以帶參數(shù)、可以重載,同時(shí)沒有返回值。classA{floatx,y;public:A(floata,floatb){x=a;y=b;}//構(gòu)造函數(shù),初始化對(duì)象floatSum(void){returnx+y;}voidSet(f

2、loata,floatb){x=a;y=b;}Print(void){cout<<"x="<

3、值的類型,也不能指定為void類型。3.一個(gè)類可以定義若干個(gè)構(gòu)造函數(shù)。當(dāng)定義多個(gè)構(gòu)造函數(shù)時(shí),必須滿足函數(shù)重載的原則。4.構(gòu)造函數(shù)可以指定參數(shù)的缺省值。5.若定義的類要說(shuō)明該類的對(duì)象時(shí),構(gòu)造函數(shù)必須是公有的成員函數(shù)。如果定義的類僅用于派生其它類時(shí),則可將構(gòu)造函數(shù)定義為保護(hù)的成員函數(shù)。由于構(gòu)造函數(shù)屬于類的成員函數(shù),它對(duì)私有數(shù)據(jù)成員、保護(hù)的數(shù)據(jù)成員和公有的數(shù)據(jù)成員均能進(jìn)行初始化。classA{floatx,y;public:A(floata,floatb=10){x=a;y=b;}A(){x=0;y=0;}voidPrint(void

4、){cout<

5、1,a2;只允許這樣定義對(duì)象對(duì)象開辟了空間,但沒有初始化對(duì)局部對(duì)象,靜態(tài)對(duì)象,全局對(duì)象的初始化對(duì)于局部對(duì)象,每次定義對(duì)象時(shí),都要調(diào)用構(gòu)造函數(shù)。對(duì)于靜態(tài)對(duì)象,是在首次定義對(duì)象時(shí),調(diào)用構(gòu)造函數(shù)的,且由于對(duì)象一直存在,只調(diào)用一次構(gòu)造函數(shù)。對(duì)于全局對(duì)象,是在main函數(shù)執(zhí)行之前調(diào)用構(gòu)造函數(shù)的。classA{intx,y;public:A(inta){x=a;cout<<“1”;}A(inta,intb){x=a,y=b;cout<<“2”;}};Aa1(3);voidf(void){Ab(2,3);}voidmain(void)

6、{Aa2(4,5);f();f();}1222classA{floatx,y;public:A(floata,floatb){x=a;y=b;cout<<"初始化自動(dòng)局部對(duì)象";}A(){x=0;y=0;cout<<"初始化靜態(tài)局部對(duì)象";}A(floata){x=a;y=0;cout<<"初始化全局對(duì)象";}voidPrint(void){cout<

7、cAa3;//初始化局部靜態(tài)對(duì)象}voidmain(void){cout<<"進(jìn)入main函數(shù)";Aa1(3.0,7.0);//定義局部自動(dòng)對(duì)象f();f();}初始化全局對(duì)象進(jìn)入main函數(shù)初始化自動(dòng)局部對(duì)象進(jìn)入f()函數(shù)初始化局部靜態(tài)變量進(jìn)入f()函數(shù)初始化自動(dòng)局部對(duì)象初始化自動(dòng)局部對(duì)象缺省的構(gòu)造函數(shù)在定義類時(shí),若沒有定義類的構(gòu)造函數(shù),則編譯器自動(dòng)產(chǎn)生一個(gè)缺省的構(gòu)造函數(shù),其格式為:className::className(){}缺省的構(gòu)造函數(shù)并不對(duì)所產(chǎn)生對(duì)象的數(shù)據(jù)成員賦初值;即新產(chǎn)生對(duì)象的數(shù)據(jù)成員的值是不確定的。clas

8、sA{floatx,y;public:A(){}//缺省的構(gòu)造函數(shù),編譯器自動(dòng)產(chǎn)生,可以不寫floatSum(void){returnx+y;}voidSet(floata,floatb){x=a;y=b;}voidPrint(void){cout<<"x="<

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問題,請(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。