第12章靜態(tài)成員和友元

第12章靜態(tài)成員和友元

ID:36808258

大?。?53.00 KB

頁數(shù):37頁

時間:2019-05-10

第12章靜態(tài)成員和友元_第1頁
第12章靜態(tài)成員和友元_第2頁
第12章靜態(tài)成員和友元_第3頁
第12章靜態(tài)成員和友元_第4頁
第12章靜態(tài)成員和友元_第5頁
資源描述:

《第12章靜態(tài)成員和友元》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第12章靜態(tài)成員和友元學(xué)習(xí)要點:掌握靜態(tài)成員和友元的概念熟練掌握如何定義和使用靜態(tài)成員熟練掌握如何定義和使用友元12.1靜態(tài)成員對象是類的實例,類刻劃了一組具有相同屬性的對象類中聲明的成員變量屬于實例化后的對象,有多個拷貝12.1靜態(tài)成員參看第十一章對程序中生成的文件對象計數(shù)的例子為了計算生成的對象的個數(shù),需要定義一個全局變量,以便在各個文件中都訪問這個變量intFileCount=0;外部全局變量在整個程序中都是可見的,因此可以達(dá)到數(shù)據(jù)共享的目的對程序中生成的文件對象計數(shù)//file.cppexternintFileCount;//在主程序中定義的全局變量File

2、::File(char*name){length=0;strcpy(filename,name);contents=NULL;FileCount++;}File::File(File&srFile){length=srFile.length;strcpy(filename,"copyof");strcat(filename,srFile.filename);contents=newchar[length];strcpy(contents,srFile.contents);FileCount++;}修改類File,使能對程序中生成的文件對象計數(shù)File::~File(

3、){delete[]contents;FileCount--;}對程序中生成的文件對象計數(shù)#include#include“File.h”intFileCount=0;voidmain(){cout<<“Filenumber:“<

4、類File,使能對程序中生成的文件對象計數(shù)程序的運行結(jié)果:Filenumber:0Filenumber:3Filenumber:2靜態(tài)成員為了安全起見,在程序中很少用全局變量從封裝和面向?qū)ο蟮慕嵌?,F(xiàn)ileCount應(yīng)屬于File類FileCount是反映類的特性的,而不是某個對象Filef1,f2;多個對象之間如果要實現(xiàn)數(shù)據(jù)共享,可以使用靜態(tài)的數(shù)據(jù)成員靜態(tài)成員一個類的靜態(tài)成員是用來表示類的屬性的,而不是對象的屬性的成員類定義中聲明的靜態(tài)變量被該類的對象所共享,即,對該類的所有對象,類的靜態(tài)成員變量只有一個拷貝定義方法:在類成員前面加上static關(guān)鍵字靜態(tài)成員分靜

5、態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)靜態(tài)數(shù)據(jù)成員公共靜態(tài)數(shù)據(jù)成員可被類的外部訪問,保護(hù)或私有的靜態(tài)數(shù)據(jù)成員只可被類的內(nèi)部訪問。靜態(tài)數(shù)據(jù)成員是類的所有對象的共享成員,而不是屬于某個對象的成員。例如:classA{intx,y;staticintshared;.....};intA::shared=0;Aa,b;靜態(tài)數(shù)據(jù)成員---注意靜態(tài)數(shù)據(jù)成員作為全局變量,其存儲空間是在類外分配的,因此靜態(tài)數(shù)據(jù)成員不能在類內(nèi)初始化,也不能用構(gòu)造函數(shù)初始化靜態(tài)數(shù)據(jù)成員。靜態(tài)數(shù)據(jù)成員必須在類的實現(xiàn)部分初始化,初始化時不需要加static,但靜態(tài)數(shù)據(jù)成員前面必須使用作用域運算符“::”來標(biāo)明它所屬的類

6、。修改File類classFile{//….private:staticintFileCount;//私有的,外界不可直接訪問//……}classFile{//….public:staticintFileCount;//公有的//……}靜態(tài)變量也遵循類的訪問控制例:看下面程序的運行結(jié)果classMyclass{public:voidGetSum(inta);staticintSum;private:intA;};voidPrintSum(Myclass&A){cout<<"Sum="<

7、=10;//必須在類外部對靜態(tài)數(shù)據(jù)成員初始化voidMyclass::GetSum(inta){A=a;Sum+=A;}voidPrintSum(Myclass&A){cout<<"Sum="<

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

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

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