溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C++中怎么操作靜態(tài)成員函數(shù)

發(fā)布時(shí)間:2021-07-15 11:38:57 來(lái)源:億速云 閱讀:221 作者:Leah 欄目:編程語(yǔ)言

C++中怎么操作靜態(tài)成員函數(shù),相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

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

#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)用時(shí)不用對(duì)象名  M::f1(Q);  }

讀者可以自行分析其結(jié)果。從中可看出,調(diào)用靜態(tài)成員函數(shù)使用如下格式:

<類(lèi)名>::<靜態(tài)成員函數(shù)名>(<參數(shù)表>);

一個(gè)類(lèi)的靜態(tài)成員函數(shù)不能像非靜態(tài)成員函數(shù)那樣“默認(rèn)調(diào)用”它的非靜態(tài)成員函數(shù)(因?yàn)?span >靜態(tài)成員函數(shù)沒(méi)有隱含的this參數(shù))。在一個(gè)類(lèi)的靜態(tài)成員函數(shù)中,只要通過(guò)某種方式得到了一個(gè)指向本類(lèi)型的對(duì)象的指針。

并且有合適的access   level,   就可以對(duì)此對(duì)象調(diào)用其非C++靜態(tài)成員函數(shù)
1.用來(lái)保存對(duì)象的個(gè)數(shù)。  

  • 漫談C++編譯的9個(gè)階段

  • C++中的C++代碼真的這么復(fù)雜嗎

  • Visual C++ 6.0開(kāi)發(fā)工具介紹

  • 如何學(xué)好C++庫(kù)類(lèi)?

  • C++函數(shù)調(diào)用方式解析


2.作為一個(gè)標(biāo)記,標(biāo)記一些動(dòng)作是否發(fā)生,比如:文件的打開(kāi)狀態(tài),打印機(jī)的使用狀態(tài),等等。  
3.存儲(chǔ)鏈表的***個(gè)或者***一個(gè)成員的內(nèi)存地址。  

靜態(tài)成員函數(shù)的作用基本上相當(dāng)于一個(gè)帶有命名空間的全局函數(shù)。
1、你不需要生成一個(gè)對(duì)象的實(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)樗撬袑?duì)象所公有的,因此,對(duì)多個(gè)對(duì)象來(lái)說(shuō),靜態(tài)數(shù)據(jù)成員只存儲(chǔ)一處,供所有對(duì)象共用。靜態(tài)數(shù)據(jù)成員的值對(duì)每個(gè)對(duì)象都是一樣,但它的值是可以更新的。只要對(duì)靜態(tài)數(shù)據(jù)成員的值更新一次,保證所有對(duì)象存取更新后的相同的值,這樣可以提高時(shí)間效率。

看完上述內(nèi)容,你們掌握C++中怎么操作靜態(tài)成員函數(shù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI