日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
處理C++靜態(tài)成員時(shí)的注意事項(xiàng)

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

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

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

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

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

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

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

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

這表明:

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

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

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

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

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

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

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

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

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

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

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

【編輯推薦】

  1. 簡介學(xué)習(xí)C++總結(jié)之談
  2. 對C++庫函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫設(shè)計(jì)的基本構(gòu)思與方法
  4. C++語言真的還有市場價(jià)值?
  5. C++類庫設(shè)計(jì)的基本構(gòu)思與方法

網(wǎng)頁題目:處理C++靜態(tài)成員時(shí)的注意事項(xiàng)
標(biāo)題URL:http://www.5511xx.com/article/cdeppco.html