不知不覺,又到周末了;上次在交流群里,答應(yīng)給大家免費(fèi)送開發(fā)板,一開始認(rèn)為板子夠送,但是昨天整理了一下,然后送了大概十幾個(gè)網(wǎng)友就不夠送了,還有十幾個(gè)網(wǎng)友沒得到板子,這里說(shuō)聲實(shí)在抱歉,下次有機(jī)會(huì)搞活動(dòng)再送給大家好玩的板子:
上圖的板子有最近買的,也有以前買的(stm32、esp8266、51、eps32、小熊派、合宙的cat1、樹莓派3b+);說(shuō)實(shí)話,這些板子買來(lái),一直放在那里吃灰,后期自己的方向也不玩硬件開發(fā)板啥的;所以上面的板子都送給了公眾號(hào)讀者在校生,讓這些板子發(fā)揮它們最大的價(jià)值,板子也會(huì)在最近慢慢一一送出去;贈(zèng)人與玫瑰,手有余香!
好了回歸主題,今天繼續(xù)分享c++的文章,學(xué)習(xí)還是不能落下,flag未完成,任務(wù)艱巨,好好學(xué)習(xí)。
一、靜態(tài)成員變量:
平時(shí)我們?cè)趯戭惖臅r(shí)候,類中的成員變量,我們一般是通過(guò)對(duì)象名來(lái)訪問(wèn)public成員變量的,一般private(私有)的成員變量,對(duì)象是不能直接訪問(wèn)的;同時(shí)我們要明白每個(gè)對(duì)象的成員變量都是專屬的,而且成員變量是不能在對(duì)象之間共享的,這就是專屬性。下面我們來(lái)做一個(gè)小的程序需求來(lái)慢慢引出靜態(tài)成員變量:
統(tǒng)計(jì)在程序運(yùn)行期間某個(gè)類的對(duì)象數(shù)目
要保證該程序的安全性(不能使用全局變量)
隨時(shí)可以獲取當(dāng)前對(duì)象的數(shù)目
代碼版本一:
#include<stdio.h>classTest{private:intmCount;public:Test():mCount(0){mCount++;}~Test(){--mCount;}intgetCount(){returnmCount;}};TestgTest;intmain(){Testt1;Testt2;printf("mCount=%dn",gTest.getCount());printf("mCount=%dn",t1.getCount());printf("mCount=%dn",t2.getCount());return0;}
運(yùn)行結(jié)果:
root@txp-virtual-machine:/home/txp#./a.outmCount=1mCount=1mCount=1
從運(yùn)行結(jié)果來(lái)我們可以看出來(lái),對(duì)象獨(dú)立性(專屬性);而且結(jié)果沒有達(dá)到我們的預(yù)期要求,于是乎,為了解決這個(gè)問(wèn)題,我們就要排靜態(tài)成員變量出場(chǎng)了。
1、c++中可以定義靜態(tài)成員變量:
靜態(tài)成員變量屬于整個(gè)類所有
靜態(tài)成員變量的生命期不依賴于任何對(duì)象(上面的程序,每個(gè)對(duì)象的成員變量是獨(dú)立的,所以打印出的mCount的值分別為1)
可以通過(guò)類名直接訪問(wèn)公有靜態(tài)成員變量
所有對(duì)象共享類的靜態(tài)成員變量
可以通過(guò)對(duì)象名 訪問(wèn)公有靜態(tài)成員變量
2、靜態(tài)成員變量的特性:
在定義時(shí)直接通過(guò)static關(guān)鍵字修飾
靜態(tài)成員變量需要在類外單獨(dú)分配空間
靜態(tài)成員變量在程序內(nèi)部位于全局?jǐn)?shù)據(jù)區(qū)
3、語(yǔ)法規(guī)則:
TypeClassName::VarName=value;注意在類的外部進(jìn)行初始化
代碼版本二:
#include<stdio.h>classTest{private:staticintmCount;public:Test()//不要使用初始化列表進(jìn)行初始化{mCount++;}~Test(){--mCount;}intgetCount(){returnmCount;}};intTest::mCount=0;TestgTest;intmain(){Testt1;Testt2;printf("mCount=%dn",gTest.getCount());printf("mCount=%dn",t1.getCount());printf("mCount=%dn",t2.getCount());return0;}
運(yùn)行結(jié)果:
root@txp-virtual-machine:/home/txp#./a.outmCount=3mCount=3mCount=3
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4329瀏覽量
62575 -
C++
+關(guān)注
關(guān)注
22文章
2108瀏覽量
73624
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論