對象成員靜態(tài)成員.ppt

對象成員靜態(tài)成員.ppt

ID:49263885

大小:465.00 KB

頁數(shù):27頁

時(shí)間:2020-02-02

對象成員靜態(tài)成員.ppt_第1頁
對象成員靜態(tài)成員.ppt_第2頁
對象成員靜態(tài)成員.ppt_第3頁
對象成員靜態(tài)成員.ppt_第4頁
對象成員靜態(tài)成員.ppt_第5頁
資源描述:

《對象成員靜態(tài)成員.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、復(fù)習(xí)動態(tài)內(nèi)存分配和回收:new和delete優(yōu)點(diǎn):不需要計(jì)算申請空間字節(jié)數(shù);不需要強(qiáng)制類型轉(zhuǎn)換;注意:兩種申請形式和相應(yīng)的回收形式;和delete配合使用。特殊的對象指針----this指針非靜態(tài)成員函數(shù)的隱含參數(shù);指向當(dāng)前對象;自動隱含實(shí)現(xiàn)參數(shù)傳遞;靜態(tài)成員函數(shù)沒有this指針。內(nèi)嵌對象(對象成員)和聚合類和外部類是”組成“關(guān)系?!背跏蓟蓡T列表“;構(gòu)造函數(shù)調(diào)用次序靜態(tài)成員1例如:float*p5=newfloat(2.5);//p5為指向浮點(diǎn)型數(shù)據(jù)的指針,此浮點(diǎn)數(shù)值為2.5intc=10;int*p6=newint[c];in

2、t*p2=newint[4][8];//在內(nèi)存中申請能存放10個(gè)整型數(shù)的空間,p6指向空間開始的地方。//在內(nèi)存中申請能存放8X4個(gè)整型數(shù)的空間,p2指向空間開始的地方例子:釋放動態(tài)申請的空間int*stringptr1=newint(3);int*stringptr2=newint[100];deletestringptr1;//回收一個(gè)整數(shù)空間delete[]stringptr2;//回收數(shù)組空間44*this指針可以理解為成員函數(shù)定義時(shí),系統(tǒng)自動增加的一個(gè)默認(rèn)參數(shù)。調(diào)用成員函數(shù)時(shí),由系統(tǒng)自動把當(dāng)前對象的地址傳遞給這個(gè)默認(rèn)參數(shù)

3、。例如:對象A調(diào)用一個(gè)成員函數(shù)時(shí),系統(tǒng)自動為該函數(shù)指定一個(gè)指向?qū)ο驛的指針,就是*this指針對一個(gè)類的不同對象,盡管成員函數(shù)共享,但成員函數(shù)的*this指針卻隨對象的變化而變化,總是指向當(dāng)前對象。Date::Date(intmm,intdd,intyy){………………}Date::Date(intmm,intdd,intyy,Date*constthis){………………}53對象成員在定義一個(gè)新類時(shí),可以把一個(gè)已定義類的對象作為該類的成員,稱為對象成員。類與類之間互不干涉內(nèi)政對于含有對象成員的對象,在對該它進(jìn)行初始化之前,首先要

4、對其中的對象成員進(jìn)行初始化,這要通過調(diào)用對象成員的構(gòu)造函數(shù)來實(shí)現(xiàn)。通常采用“初始化成員列表”的方法向?qū)ο蟪蓡T的構(gòu)造函數(shù)傳遞實(shí)參?!纠?0.17】6初始化成員列表的一般格式是:<類名>(參數(shù)表0):c1(參數(shù)表1)《,c2(參數(shù)表2),…,cn(參數(shù)表n)》{…}//構(gòu)造函數(shù)體冒號后面的部分稱為初始化成員列表,c1、…、cn可為對象成員名,也可為基本數(shù)據(jù)類型的成員數(shù)據(jù)。對象成員初始化的順序取決于這些對象成員在類中說明的順序,即先說明先調(diào)用,與他們在成員初始化列表中的順序無關(guān)。7綜上所述,在創(chuàng)建具有對象成員的類的對象時(shí),應(yīng)先按對象成員

5、定義的先后次序調(diào)用各個(gè)對象成員的構(gòu)造函數(shù),然后才調(diào)用這個(gè)類本身的構(gòu)造函數(shù)。析構(gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)正好相反。4靜態(tài)成員類相當(dāng)于一個(gè)數(shù)據(jù)類型,當(dāng)說明一個(gè)某類的對象時(shí),系統(tǒng)就為該對象分配一塊內(nèi)存單元來存放類中的所有數(shù)據(jù)成員。但在某些應(yīng)用中,需要程序中屬于某個(gè)類的所有對象共享某個(gè)數(shù)據(jù)。為此,一個(gè)解決的辦法就是將所要共享的數(shù)據(jù)說明為全局變量,但這將破壞數(shù)據(jù)的封裝性;較好的解決辦法是將所要共享的數(shù)據(jù)說明為類的靜態(tài)成員。靜態(tài)成員舉例:銀行賬戶Classaccount{private:doublebalance;//余額staticfloa

6、tinterestYTD;//利率char*name;//姓名char*accountID;//賬號public:voidMakeDeposit();voidTransfer();staticvoidModInterest();//調(diào)整利率}4.1靜態(tài)數(shù)據(jù)成員C++中,同一個(gè)類定義多個(gè)對象時(shí),每個(gè)對象擁有各自的數(shù)據(jù)成員(不包括靜態(tài)數(shù)據(jù)成員),而所有對象共享一份成員函數(shù)和一份靜態(tài)數(shù)據(jù)成員。靜態(tài)數(shù)據(jù)成員是類的所有對象所共享的成員,而不是某個(gè)對象的成員,因此可以實(shí)現(xiàn)多個(gè)對象間的數(shù)據(jù)共享。靜態(tài)數(shù)據(jù)成員不屬于任何對象,它不因?qū)ο蟮慕⒍a(chǎn)生

7、,也不因?qū)ο蟮奈鰳?gòu)而刪除,它是類定義的一部分,所以使用靜態(tài)數(shù)據(jù)成員不會破壞類的封裝性。對靜態(tài)數(shù)據(jù)成員的操作和一般數(shù)據(jù)成員一樣,定義為私有的靜態(tài)數(shù)據(jù)成員不能由外界訪問。靜態(tài)數(shù)據(jù)成員可由任意訪問權(quán)限許可的函數(shù)訪問。可以在類的成員函數(shù)中改變靜態(tài)數(shù)據(jù)成員。類中用關(guān)鍵字static修飾的數(shù)據(jù)成員叫做靜態(tài)數(shù)據(jù)成員,必須對它初始化。靜態(tài)數(shù)據(jù)成員不從屬于任何一個(gè)具體對象,所以對它的初始化不能在構(gòu)造函數(shù)中進(jìn)行。靜態(tài)數(shù)據(jù)成員的使用方法如下:(1)靜態(tài)數(shù)據(jù)成員的定義與一般數(shù)據(jù)成員相似,但前面要加上static關(guān)鍵詞。例如:classClass1{int

8、a;staticintb;//靜態(tài)數(shù)據(jù)成員//…}c1,c2;(2)靜態(tài)數(shù)據(jù)成員的初始化與一般數(shù)據(jù)成員不同,在類體外進(jìn)行。靜態(tài)數(shù)據(jù)成員初始化的格式如下:<類型><類名>::<靜態(tài)數(shù)據(jù)成員>=<值>;例如:intClass1::b=0;(3)在引用靜

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

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

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