自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

怎樣使用C++靜態(tài)成員

開(kāi)發(fā) 后端
在C++類(lèi)中聲明成員時(shí)可以加上static關(guān)鍵字,其中包括數(shù)據(jù)成員和成員函數(shù)的成員就叫做C++靜態(tài)成員,歡迎大家學(xué)習(xí)探討。

在C++中,C++靜態(tài)成員的提出是為了解決數(shù)據(jù)共享的問(wèn)題。實(shí)現(xiàn)共享的作用,下面主要講述的是如何快速高效的實(shí)現(xiàn)C++靜態(tài)成員的數(shù)據(jù)的共享問(wèn)題。

在類(lèi)中,C++靜態(tài)成員可以實(shí)現(xiàn)多個(gè)對(duì)象之間的數(shù)據(jù)共享,并且使用靜態(tài)數(shù)據(jù)成員還不會(huì)破壞隱藏的原則,即保證了安全性。因此,靜態(tài)成員是類(lèi)的所有對(duì)象中共享的成員,而不是某個(gè)對(duì)象的成員。

使用靜態(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í)間效率。

靜態(tài)數(shù)據(jù)成員的使用方法和注意事項(xiàng)如下:

1、靜態(tài)數(shù)據(jù)成員在定義或說(shuō)明時(shí)前面加關(guān)鍵字static。

2、C++靜態(tài)成員初始化與一般數(shù)據(jù)成員初始化不同。靜態(tài)數(shù)據(jù)成員初始化的格式如下:<數(shù)據(jù)類(lèi)型><類(lèi)名>::<靜態(tài)數(shù)據(jù)成員名>=<值>

這表明:
(1) 初始化在類(lèi)體外進(jìn)行,而前面不加static,以免與一般靜態(tài)變量或?qū)ο笙嗷煜?/P>

(2) 初始化時(shí)不加該成員的訪問(wèn)權(quán)限控制符private,public等。

(3) 初始化時(shí)使用作用域運(yùn)算符來(lái)標(biāo)明它所屬類(lèi),因此,靜態(tài)數(shù)據(jù)成員是類(lèi)的成員,而不是對(duì)象的成員。

3、靜態(tài)C++靜態(tài)成員是靜態(tài)存儲(chǔ)的,它是靜態(tài)生存期,必須對(duì)它進(jìn)行初始化。

4、引用靜態(tài)數(shù)據(jù)成員時(shí),采用如下格式:<類(lèi)名>::<靜態(tài)成員名>

如果靜態(tài)數(shù)據(jù)成員的訪問(wèn)權(quán)限允許的話(huà)(即public的成員),可在程序中,按上述格式來(lái)引用靜態(tài)數(shù)據(jù)成員。下面舉一例子,說(shuō)明靜態(tài)數(shù)據(jù)成員的應(yīng)用:

  1. #include   
  2. class Myclass  
  3. {  
  4. public:  
  5. Myclass(int a, int b, int c);  
  6. void GetNumber();  
  7. void GetSum();  
  8. private:  
  9. int A, B, C;  
  10. static int Sum;  
  11. };  
  12.  
  13. int Myclass::Sum = 0;  
  14.  
  15. Myclass::Myclass(int a, int b, int c)  
  16. {  
  17. A = a;  
  18. B = b;  
  19. C = c;  
  20. Sum += A+B+C;  
  21. }  
  22.  
  23. void Myclass::GetNumber()  
  24. {  
  25. cout<<"Number="<<<","<<<","<< 
  26. }  
  27.  
  28. void Myclass::GetSum()  
  29. {  
  30. cout<<"Sum="<< 
  31. }  
  32.  
  33. void main()  
  34. {  
  35. Myclass M(3, 7, 10),N(14, 9, 11);  
  36. M.GetNumber();  
  37. N.GetNumber();  
  38. M.GetSum();  
  39. N.GetSum();  

從輸出結(jié)果可以看到Sum的值對(duì)M對(duì)象和對(duì)N對(duì)象都是相等的。這是因?yàn)樵诔跏蓟疢對(duì)象時(shí),將M對(duì)象的三個(gè)int型數(shù)據(jù)成員的值求和后賦給了Sum,于是 Sum保存了該值。

在初始化N對(duì)象時(shí),對(duì)將N對(duì)象的三個(gè)int型數(shù)據(jù)成員的值求和后又加到Sum已有的值上,于是Sum將保存另后的值。所以,不論是通過(guò)對(duì)象M還是通過(guò)對(duì)象N來(lái)引用的值都是一樣的。

【編輯推薦】

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

2010-01-18 18:04:28

靜態(tài)成員

2010-01-28 16:42:29

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

2010-01-21 14:28:03

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

2011-05-24 16:58:52

CC++

2010-01-18 17:57:02

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

2023-10-07 15:53:05

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

2024-02-22 18:07:17

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

2010-01-22 11:13:16

C++靜態(tài)

2010-01-19 18:35:12

靜態(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-20 17:58:54

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

2023-03-21 15:21:52

開(kāi)發(fā)程序設(shè)計(jì)static

2010-02-03 11:01:18

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

2009-08-28 14:09:19

C#靜態(tài)類(lèi)

2010-02-02 15:01:59

C++成員函數(shù)指針

2024-08-26 15:06:20

2025-01-26 16:01:13

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

2010-01-25 10:25:19

C++變量

2010-01-20 14:35:55

C++調(diào)用
點(diǎn)贊
收藏

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