偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

漫談C++類的靜態(tài)成員

開發(fā) 后端
在C++中語言中,靜態(tài)成員函數(shù)和靜態(tài)數(shù)據(jù)成員一樣,它們都屬于類的靜態(tài)成員,它們都不是對象成員,可以在使用的過程當(dāng)中感受到趣味性和吸引力。

靜態(tài)數(shù)據(jù)成員的值對每個對象都是一樣,這些對于一些專業(yè)的程序員來說進(jìn)行靜態(tài)成員函數(shù)實(shí)現(xiàn)是一件非常頭疼的事情,看完本文一定會讓您解決是你頭疼的靜態(tài)成員函數(shù)的問題了!

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

  1. #include   
  2. class M  
  3. {  
  4. public:  
  5. M(int a) { A=a; B+=a;}  
  6. static void f1(M m);  
  7. private:  
  8. int A;  
  9. static int B;  
  10. };  
  11.  
  12. void M::f1(M m)  
  13. {  
  14. cout<<"A="<< 
  15. cout<<"B="<< 
  16. }  
  17.  
  18. int M::B=0;  
  19. void main()  
  20. {  
  21. M P(5),Q(10);  
  22. M::f1(P); file://調(diào)用時不用對象名  
  23. M::f1(Q);  

讀者可以自行分析其結(jié)果。從中可看出,調(diào)用靜態(tài)成員函數(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)用其非靜態(tài)成員函數(shù)。

1.用來保存對象的個數(shù)。  
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)用需使用靜態(tài)成員函數(shù)或全局函數(shù)。

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

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

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

【編輯推薦】

  1. 簡介學(xué)習(xí)C++總結(jié)之談
  2. 對C++庫函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫設(shè)計的基本構(gòu)思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設(shè)計的基本構(gòu)思與方法
責(zé)任編輯:chenqingxiang 來源: NET130
相關(guān)推薦

2024-02-22 18:07:17

C++靜態(tài)成員代碼

2010-01-19 18:35:12

靜態(tài)成員

2010-01-21 14:19:44

C++靜態(tài)成員

2011-05-24 16:58:52

CC++

2009-08-28 14:09:19

C#靜態(tài)類

2010-01-18 17:57:02

靜態(tài)數(shù)據(jù)

2023-10-07 15:53:05

C/C++靜態(tài)變量內(nèi)存

2010-01-21 14:28:03

C++靜態(tài)成員函數(shù)

2010-01-28 16:42:29

C++靜態(tài)成員

2010-02-03 11:01:18

C++類靜態(tài)成員初始化

2024-08-26 15:06:20

2010-01-20 17:58:54

C++靜態(tài)成員

2010-02-04 10:08:00

C++靜態(tài)成員函數(shù)

2010-02-04 10:02:08

C++靜態(tài)數(shù)據(jù)成員

2010-01-18 16:56:30

C++函數(shù)

2010-01-14 14:40:21

C++代碼

2010-02-01 17:31:06

C++類成員

2023-03-21 15:21:52

開發(fā)程序設(shè)計static

2021-06-18 12:30:36

C++函數(shù)指針編程語言

2009-05-26 09:31:00

C++重載覆蓋
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號