新聞中心
在成員函數(shù)的實(shí)現(xiàn)中不能直接引用類中說明的非靜態(tài)成員,可以引用類中說明的靜態(tài)成員,如果C++靜態(tài)成員函數(shù)中要引用非靜態(tài)成員時,可通過對象來引用。下面通過例子來說明這一點(diǎn)。

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出婁星免費(fèi)做網(wǎng)站回饋大家。
- #include
- class M
- {
- public:
- M(int a) { A=a; B+=a;}
- static void f1(M m);
- private:
- int A;
- static int B;
- };
- void M::f1(M m)
- {
- cout<<"A="<<
- cout<<"B="<<
- }
- int M::B=0;
- void main()
- {
- M P(5),Q(10);
- M::f1(P); file://調(diào)用時不用對象名
- M::f1(Q);
- }
讀者可以自行分析其結(jié)果。從中可看出,調(diào)用靜態(tài)成員函數(shù)使用如下格式:
- <類名>::<靜態(tài)成員函數(shù)名>(<參數(shù)表>);
一個類的靜態(tài)成員函數(shù)不能像非靜態(tài)成員函數(shù)那樣“默認(rèn)調(diào)用”它的非靜態(tài)成員函數(shù)(因?yàn)?font>靜態(tài)成員函數(shù)沒有隱含的this參數(shù))。在一個類的靜態(tài)成員函數(shù)中,只要通過某種方式得到了一個指向本類型的對象的指針。
并且有合適的access level, 就可以對此對象調(diào)用其非C++靜態(tài)成員函數(shù)。
1.用來保存對象的個數(shù)。 #t#
2.作為一個標(biāo)記,標(biāo)記一些動作是否發(fā)生,比如:文件的打開狀態(tài),打印機(jī)的使用狀態(tài),等等。
3.存儲鏈表的***個或者***一個成員的內(nèi)存地址。
靜態(tài)成員函數(shù)的作用基本上相當(dāng)于一個帶有命名空間的全局函數(shù)。
1、你不需要生成一個對象的實(shí)例就可以直接使用該函數(shù)。如,Cxxx::MyStaticFunc();
2、窗口回調(diào)函數(shù)需使用靜態(tài)成員函數(shù)或全局函數(shù)。
3、線程調(diào)用需使用C++靜態(tài)成員函數(shù)或全局函數(shù)。
使用靜態(tài)數(shù)據(jù)成員可以節(jié)省內(nèi)存,因?yàn)樗撬袑ο笏械?,因此,對多個對象來說,靜態(tài)數(shù)據(jù)成員只存儲一處,供所有對象共用。靜態(tài)數(shù)據(jù)成員的值對每個對象都是一樣,但它的值是可以更新的。只要對靜態(tài)數(shù)據(jù)成員的值更新一次,保證所有對象存取更新后的相同的值,這樣可以提高時間效率。
分享文章:淺析C++靜態(tài)成員函數(shù)操作
轉(zhuǎn)載來于:http://www.dlmjj.cn/article/dppgech.html


咨詢
建站咨詢
