溫馨提示×

溫馨提示×

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

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

C++類的靜態(tài)成員有哪些

發(fā)布時(shí)間:2021-11-29 16:12:06 來源:億速云 閱讀:138 作者:iii 欄目:編程語言

本篇內(nèi)容介紹了“C++類的靜態(tài)成員有哪些”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

靜態(tài)成員函數(shù)的實(shí)現(xiàn)中不能直接引用類中說明的非靜態(tài)成員,可以引用類中說明的靜態(tài)成員。如果靜態(tài)成員函數(shù)中要引用非靜態(tài)成員時(shí),可通過對象來引用。下面通過例子來說明這一點(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í)不用對象名  M::f1(Q);  }

讀者可以自行分析其結(jié)果。從中可看出,調(diào)用靜態(tài)成員函數(shù)使用如下格式:一個(gè)類的靜態(tài)成員函數(shù)不能像非靜態(tài)成員函數(shù)那樣“默認(rèn)調(diào)用”它的非靜態(tài)成員函數(shù)(因?yàn)?span >靜態(tài)成員函數(shù)沒有隱含的this參數(shù))。

在一個(gè)類的靜態(tài)成員函數(shù)中,只要通過某種方式得到了一個(gè)指向本類型的對象的指針,并且有合適的access   level,   就可以對此對象調(diào)用其非靜態(tài)成員函數(shù)。

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

靜態(tài)成員函數(shù)的作用基本上相當(dāng)于一個(gè)帶有命名空間的全局函數(shù)。
1、你不需要生成一個(gè)對象的實(shí)例就可以直接使用該函數(shù)。如,Cxxx::MyStaticFunc();
2、窗口回調(diào)函數(shù)需使用靜態(tài)成員函數(shù)或全局函數(shù)。
3、線程調(diào)用需使用靜態(tài)成員函數(shù)或全局函數(shù)。

C++是在C語言大行其道的歷史背景下發(fā)展起來的,在一開始以及后來的相當(dāng)長一段時(shí)間內(nèi),C++是C的超集,所有C的特性在C++里面都有,因此導(dǎo)致了大量后來的C++入門書籍都從C講起,實(shí)際上,這是一個(gè)誤導(dǎo),因?yàn)镃++雖然是C的超集,然而用抽象機(jī)制擴(kuò)展C語言的重大意義就在于用抽象去覆蓋C當(dāng)中裸露的種種語言特性,讓程序員能夠在一個(gè)更自然的抽象層面上編程。

  • C++程序基礎(chǔ)知識說明

  • 詳細(xì)介紹C++數(shù)據(jù)類型

  • 對于C++操作符淺析說明

  • 詳細(xì)說明C++中的C++函數(shù)

  • 透析C++ main()函數(shù)形式

比如你不是用int*加一個(gè)數(shù)組大小n來表示一個(gè)數(shù)組,而是用可自動增長的vector;比如你不是用malloc/free,而是用智能指針和RAII技術(shù)來管理資源;比如你不是用一個(gè)只包含數(shù)據(jù)的結(jié)構(gòu)體加上一組函數(shù)來做一個(gè)暴露的類,而是使用真正的ADT。

比如你不是使用second-class的返回值來表達(dá)錯(cuò)誤,而是利用first-class的語言級異常機(jī)制等等。然而,C畢竟是C++的源頭,剝開C++的抽象外衣,底層仍然還是C;而且,更關(guān)鍵的是,在實(shí)際編碼當(dāng)中,有時(shí)候還的確要“C++”一把,比如在模塊級的二進(jìn)制接口封裝上。Bjarne也說過,OO/GP這些抽象機(jī)制只有用在合適的地方才是合適的。

“C++類的靜態(tài)成員有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

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

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

c++
AI