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

處理C++靜態(tài)成員時的注意事項

開發(fā) 后端
靜態(tài)數(shù)據(jù)成員在定義或說明時前面加關(guān)鍵字static,C++靜態(tài)成員初始化與一般數(shù)據(jù)成員初始化不同。靜態(tài)數(shù)據(jù)成員初始化的格式如下:

C++靜態(tài)成員的提出是為了解決數(shù)據(jù)共享的問題。實現(xiàn)共享有許多方法,如:設(shè)置全局性的變量或?qū)ο笫且环N方法。但是,全局變量或?qū)ο笫怯芯窒扌缘?。這一章里,我們主要講述類的靜態(tài)成員來實現(xiàn)數(shù)據(jù)的共享。

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

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

使用靜態(tài)數(shù)據(jù)成員可以節(jié)省內(nèi)存,因為它是所有對象所公有的,因此,對多個對象來說,靜態(tài)數(shù)據(jù)成員只存儲一處,供所有對象共用。靜態(tài)數(shù)據(jù)成員的值對每個對象都是一樣,但它的值是可以更新的。只要對靜態(tài)數(shù)據(jù)成員的值更新一次,保證所有對象存取更新后的相同的值,這樣可以提高時間效率。

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

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

2、C++靜態(tài)成員初始化與一般數(shù)據(jù)成員初始化不同。靜態(tài)數(shù)據(jù)成員初始化的格式如下:

<數(shù)據(jù)類型><類名>::<靜態(tài)數(shù)據(jù)成員名>=<值>

這表明:

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

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

(3) 初始化時使用作用域運算符來標明它所屬類,因此,靜態(tài)數(shù)據(jù)成員是類的成員,而不是對象的成員。

3、靜態(tài)數(shù)據(jù)成員是靜態(tài)存儲的,它是靜態(tài)生存期,必須對它進行初始化。

4、引用靜態(tài)數(shù)據(jù)成員時,采用如下格式:

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

從輸出結(jié)果可以看到Sum的值對M對象和對N對象都是相等的。這是因為在初始化M對象時,將M對象的三個int型數(shù)據(jù)成員的值求和后賦給了Sum,于是Sum保存了該值。在初始化N對象時,對將N對象的三個int型數(shù)據(jù)成員的值求和后又加到Sum已有的值上,于是Sum將保存另后的值。所以,不論是通過對象M還是通過對象N來引用的值都是一樣的,即為54。

值得注意的是,這里需要避免一個陷阱,就是一旦人們認定了“C++不好”,那么這個理由就會“長出自己的腳來”,即,就算我們拿掉C++的復(fù)雜性,他們可能也會堅持還是不用C++靜態(tài)成員,并為之找一堆理由。我假定你不是這樣的人。

不過,也許最可能的是他會說:“問題是我們今天用的C++并非如此(簡潔),你的假設(shè)不成立?!笔堑?,我的假設(shè)不成立。但雖然我們無法消除復(fù)雜性,我們實際上是可以容易地避開復(fù)雜性,避短揚長的。這也是本文的要點,容我后面再詳述。

當然,到現(xiàn)在你可能還是會說。我還是不用C++,因為我可以用D;或者如果你本來做的項目就不需要C++,你則可能會說,我用Python。首先,如果你的項目能用Java/Python乃至Ruby做,那么用C++是自討苦吃。因為能用那些語言代表你的項目在效率上本身要求就不高,那么用一門效率上討不到太大好處,復(fù)雜性上卻綽綽有余的語言,有什么價值呢?其次,如果你的項目效率是很重要的,你可能會說可以用D。

然而現(xiàn)實是D在工業(yè)界尤其是國內(nèi)被運用得非常少,幾乎沒有。而C++卻有大量的既有代碼,已經(jīng)使用C++去做他們的產(chǎn)品的公司,在很長一段時間之內(nèi)幾乎是不可能用別的語言重寫代碼的,正如Joel所說,決定重寫一個非平凡的代碼基==自殺。

【編輯推薦】

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

2010-01-14 18:19:40

C++語言

2010-01-25 18:12:28

C++

2010-01-27 09:12:01

C++語言學(xué)習(xí)

2010-01-26 16:54:58

學(xué)習(xí)C++

2010-01-28 16:42:29

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

2010-01-18 16:12:16

CC++語言

2010-02-03 16:42:45

C++變量作用域

2011-06-14 15:25:28

C++多線程

2009-08-06 16:13:16

C# Web Serv

2010-01-22 14:12:40

C++

2011-05-03 16:58:55

噴墨打印機墨水

2010-01-18 18:04:28

靜態(tài)成員

2010-01-21 14:19:44

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

2010-02-03 10:21:46

初學(xué)Python

2011-05-24 16:58:52

CC++

2011-08-02 13:08:06

Oracle索引

2009-09-01 17:25:33

初學(xué)C#編程

2024-02-22 18:07:17

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

2022-06-22 10:19:20

員工談判專家

2010-01-18 17:57:02

靜態(tài)數(shù)據(jù)
點贊
收藏

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