0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C++之靜態(tài)成員變量和靜態(tài)成員函數(shù)學(xué)習(xí)的總結(jié)

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 17:12 ? 次閱讀

不知不覺,又到周末了;上次在交流群里,答應(yīng)給大家免費(fèi)送開發(fā)板,一開始認(rèn)為板子夠送,但是昨天整理了一下,然后送了大概十幾個(gè)網(wǎng)友就不夠送了,還有十幾個(gè)網(wǎng)友沒得到板子,這里說聲實(shí)在抱歉,下次有機(jī)會(huì)搞活動(dòng)再送給大家好玩的板子:

上圖的板子有最近買的,也有以前買的(stm32、esp8266、51、eps32、小熊派、合宙的cat1、樹莓派3b+);說實(shí)話,這些板子買來,一直放在那里吃灰,后期自己的方向也不玩硬件開發(fā)板啥的;所以上面的板子都送給了公眾號(hào)讀者在校生,讓這些板子發(fā)揮它們最大的價(jià)值,板子也會(huì)在最近慢慢一一送出去;贈(zèng)人與玫瑰,手有余香!

好了回歸主題,今天繼續(xù)分享c++的文章,學(xué)習(xí)還是不能落下,flag未完成,任務(wù)艱巨,好好學(xué)習(xí)。

一、靜態(tài)成員變量:

平時(shí)我們?cè)趯戭惖臅r(shí)候,類中的成員變量,我們一般是通過對(duì)象名來訪問public成員變量的,一般private(私有)的成員變量,對(duì)象是不能直接訪問的;同時(shí)我們要明白每個(gè)對(duì)象的成員變量都是專屬的,而且成員變量是不能在對(duì)象之間共享的,這就是專屬性。下面我們來做一個(gè)小的程序需求來慢慢引出靜態(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é)果來我們可以看出來,對(duì)象獨(dú)立性(專屬性);而且結(jié)果沒有達(dá)到我們的預(yù)期要求,于是乎,為了解決這個(gè)問題,我們就要排靜態(tài)成員變量出場了。

1、c++中可以定義靜態(tài)成員變量:

靜態(tài)成員變量屬于整個(gè)類所有

靜態(tài)成員變量的生命期不依賴于任何對(duì)象(上面的程序,每個(gè)對(duì)象的成員變量是獨(dú)立的,所以打印出的mCount的值分別為1)

可以通過類名直接訪問公有靜態(tài)成員變量

所有對(duì)象共享類的靜態(tài)成員變量

可以通過對(duì)象名 訪問公有靜態(tài)成員變量

2、靜態(tài)成員變量的特性:

在定義時(shí)直接通過static關(guān)鍵字修飾

靜態(tài)成員變量需要在類外單獨(dú)分配空間

靜態(tài)成員變量在程序內(nèi)部位于全局?jǐn)?shù)據(jù)區(qū)

3、語法規(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
審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4345

    瀏覽量

    62884
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2114

    瀏覽量

    73798
收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    EE-128:C語言中的DSP:從C調(diào)用匯編類成員函數(shù)

    電子發(fā)燒友網(wǎng)站提供《EE-128:C語言中的DSP:從C調(diào)用匯編類成員函數(shù).pdf》資料免費(fèi)下載
    發(fā)表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b>語言中的DSP:從<b class='flag-5'>C</b>調(diào)用匯編類<b class='flag-5'>成員</b><b class='flag-5'>函數(shù)</b>

    同樣是函數(shù),在CC++中有什么區(qū)別

    同樣是函數(shù),在 CC++ 中有什么區(qū)別? 第一個(gè)返回值。 C語言的函數(shù)可以不寫返回值類型,編譯器會(huì)默認(rèn)為返回 int。 但是
    的頭像 發(fā)表于 11-29 10:25 ?404次閱讀

    C++新手容易犯的十個(gè)編程錯(cuò)誤

    簡單的總結(jié)一下?C++ 新手容易犯的一些編程錯(cuò)誤,給新人們提供一個(gè)參考。 1 有些關(guān)鍵字在 cpp 文件中多寫了 對(duì)于 C++ 類,一些關(guān)鍵字只要寫在 .h 中就好,cpp 中就不用再加上了,比如
    的頭像 發(fā)表于 11-15 12:42 ?457次閱讀

    如何測試TPA3118和TPA3116的靜態(tài)電流和靜態(tài)功耗?

    1.如何測試TPA3118和TPA3116的靜態(tài)電流和靜態(tài)功耗? 2.測試時(shí)候需要帶負(fù)載嘛?(是否需要接喇叭) 3.如果用萬用表測試應(yīng)該怎么測?
    發(fā)表于 10-12 06:54

    靜態(tài)鏈接和動(dòng)態(tài)鏈接

    目標(biāo)文件,一般是以.so文件形式存在。GCC默認(rèn)是動(dòng)態(tài)鏈接不需要加參數(shù)。舉例子看一下動(dòng)態(tài)鏈接庫的使用方法,創(chuàng)建三個(gè)C語言文件:mymath.c、mymath.h、test.c。 通過兩個(gè)變量
    發(fā)表于 08-27 10:20

    暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定的區(qū)別是什么

    暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定是電力系統(tǒng)穩(wěn)定性分析中的兩個(gè)重要概念,它們分別描述了電力系統(tǒng)在受到擾動(dòng)后的動(dòng)態(tài)響應(yīng)和穩(wěn)態(tài)運(yùn)行狀態(tài)。下面將介紹暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定的區(qū)別,并從多個(gè)方面進(jìn)行比較。 定義上的區(qū)別 暫態(tài)穩(wěn)定
    的頭像 發(fā)表于 07-26 09:41 ?3067次閱讀

    請(qǐng)問靜態(tài)變量如何放到flash中?

    比如有有很多的靜態(tài)變量,如何防到flash中。 我用了const修飾,編譯出來,但是還是在rodate段,該段不是在80k的ram中嗎?
    發(fā)表于 07-12 09:26

    靜態(tài)庫中定義的INIT_DEVICE_EXPORT函數(shù)并沒有被系統(tǒng)調(diào)用,為什么?

    1,將一段代碼編譯成靜態(tài)庫 2,主工程鏈接這個(gè)靜態(tài)庫 3,靜態(tài)庫里的函數(shù)并沒有被主工程調(diào)用 4,靜態(tài)庫中定義了一些 INIT_DEVICE_
    發(fā)表于 07-04 06:49

    ESP32+Eclipse如何添加C++生成的靜態(tài)庫?

    ESP32+Eclipse如何添加C++生成的靜態(tài)庫?
    發(fā)表于 06-21 08:20

    DevEco Device Tool 如何生成靜態(tài)庫供第三方使用

    根據(jù)開發(fā)需要,先將應(yīng)用程序打包成靜態(tài)庫供其他組成員使用。使用IED:DevEco Device Tool 。希望相關(guān)開發(fā)人員提供幫助。謝謝!
    發(fā)表于 05-28 14:27

    如何設(shè)置靜態(tài)IP代理

    靜態(tài)IP
    jf_60146132
    發(fā)布于 :2024年04月29日 07:46:31

    淺析CMOS電路的靜態(tài)功耗和動(dòng)態(tài)功耗

    CMOS電路功耗主要由動(dòng)態(tài)功耗和靜態(tài)功耗組成,動(dòng)態(tài)功耗又分為開關(guān)功耗、短路功耗兩部分
    的頭像 發(fā)表于 04-01 16:16 ?6534次閱讀
    淺析CMOS電路的<b class='flag-5'>靜態(tài)</b>功耗和動(dòng)態(tài)功耗

    嵌入式C語言面試大挑戰(zhàn)

    C++中static關(guān)鍵字除了具有C中的作用還有在類中的使用在類中,static可以用來修飾靜態(tài)數(shù)據(jù)成員和靜態(tài)
    發(fā)表于 03-05 14:18 ?380次閱讀
    嵌入式<b class='flag-5'>C</b>語言面試大挑戰(zhàn)

    使用Tasking編譯器生成的map文件中找不到靜態(tài)全局變量的地址怎么解決 ?

    使用Tasking編譯器生成的map文件中找不到靜態(tài)全局變量的地址(變量函數(shù)中已經(jīng)使用),請(qǐng)問怎么解決
    發(fā)表于 02-06 07:21

    在多核單片機(jī)中,靜態(tài)局部變量需要?jiǎng)澐址侄涡畔幔咳绾畏诺?b class='flag-5'>函數(shù)對(duì)應(yīng)核的ram中?

    請(qǐng)問在多核單片機(jī)中,靜態(tài)局部變量需要?jiǎng)澐址侄涡畔??如何放?b class='flag-5'>函數(shù)對(duì)應(yīng)核的ram中?
    發(fā)表于 02-06 06:29

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品