衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C++之靜態成員變量和靜態成員函數學習的總結

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 17:12 ? 次閱讀

不知不覺,又到周末了;上次在交流群里,答應給大家免費送開發板,一開始認為板子夠送,但是昨天整理了一下,然后送了大概十幾個網友就不夠送了,還有十幾個網友沒得到板子,這里說聲實在抱歉,下次有機會搞活動再送給大家好玩的板子:

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

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

一、靜態成員變量:

平時我們在寫類的時候,類中的成員變量,我們一般是通過對象名來訪問public成員變量的,一般private(私有)的成員變量,對象是不能直接訪問的;同時我們要明白每個對象的成員變量都是專屬的,而且成員變量是不能在對象之間共享的,這就是專屬性。下面我們來做一個小的程序需求來慢慢引出靜態成員變量:

統計在程序運行期間某個類的對象數目

要保證該程序的安全性(不能使用全局變量)

隨時可以獲取當前對象的數目

代碼版本一:

#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;}

運行結果:

root@txp-virtual-machine:/home/txp#./a.outmCount=1mCount=1mCount=1

從運行結果來我們可以看出來,對象獨立性(專屬性);而且結果沒有達到我們的預期要求,于是乎,為了解決這個問題,我們就要排靜態成員變量出場了。

1、c++中可以定義靜態成員變量:

靜態成員變量屬于整個類所有

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

可以通過類名直接訪問公有靜態成員變量

所有對象共享類的靜態成員變量

可以通過對象名 訪問公有靜態成員變量

2、靜態成員變量的特性:

在定義時直接通過static關鍵字修飾

靜態成員變量需要在類外單獨分配空間

靜態成員變量在程序內部位于全局數據區

3、語法規則:

TypeClassName::VarName=value;注意在類的外部進行初始化

代碼版本二:

#include<stdio.h>classTest{private:staticintmCount;public:Test()//不要使用初始化列表進行初始化{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;}

運行結果:

root@txp-virtual-machine:/home/txp#./a.outmCount=3mCount=3mCount=3
審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4346

    瀏覽量

    62978
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73859
收藏 人收藏

    評論

    相關推薦

    EE-128:C語言中的DSP:從C調用匯編類成員函數

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

    同樣是函數,在CC++中有什么區別

    同樣是函數,在 CC++ 中有什么區別? 第一個返回值。 C語言的函數可以不寫返回值類型,編譯器會默認為返回 int。 但是
    的頭像 發表于 11-29 10:25 ?434次閱讀

    C++新手容易犯的十個編程錯誤

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

    如何測試TPA3118和TPA3116的靜態電流和靜態功耗?

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

    傳感器的動態特性和靜態特性參數介紹

    傳感器的特性可以分為靜態特性和動態特性兩大類,這兩類特性分別描述了傳感器在不同輸入條件下的輸出響應特點。下面將詳細介紹這兩類特性的主要參數。
    的頭像 發表于 09-29 16:24 ?2873次閱讀

    安全對決:動態IP vs 靜態IP,誰為網絡安全保駕護航?

    動態IP和靜態IP在安全性方面各有特點,不能簡單地判斷哪個更安全,而是取決于具體的使用場景和需求。
    的頭像 發表于 09-13 09:45 ?698次閱讀

    靜態鏈接和動態鏈接

    目標文件,一般是以.so文件形式存在。GCC默認是動態鏈接不需要加參數。舉例子看一下動態鏈接庫的使用方法,創建三個C語言文件:mymath.c、mymath.h、test.c。 通過兩個變量
    發表于 08-27 10:20

    暫態穩定和靜態穩定的區別是什么

    暫態穩定和靜態穩定是電力系統穩定性分析中的兩個重要概念,它們分別描述了電力系統在受到擾動后的動態響應和穩態運行狀態。下面將介紹暫態穩定和靜態穩定的區別,并從多個方面進行比較。 定義上的區別 暫態穩定
    的頭像 發表于 07-26 09:41 ?3114次閱讀

    請問靜態變量如何放到flash中?

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

    靜態庫中定義的INIT_DEVICE_EXPORT函數并沒有被系統調用,為什么?

    1,將一段代碼編譯成靜態庫 2,主工程鏈接這個靜態庫 3,靜態庫里的函數并沒有被主工程調用 4,靜態庫中定義了一些 INIT_DEVICE_
    發表于 07-04 06:49

    ESP32+Eclipse如何添加C++生成的靜態庫?

    ESP32+Eclipse如何添加C++生成的靜態庫?
    發表于 06-21 08:20

    DevEco Device Tool 如何生成靜態庫供第三方使用

    根據開發需要,先將應用程序打包成靜態庫供其他組成員使用。使用IED:DevEco Device Tool 。希望相關開發人員提供幫助。謝謝!
    發表于 05-28 14:27

    如何設置靜態IP代理

    靜態IP
    jf_60146132
    發布于 :2024年04月29日 07:46:31

    淺析CMOS電路的靜態功耗和動態功耗

    CMOS電路功耗主要由動態功耗和靜態功耗組成,動態功耗又分為開關功耗、短路功耗兩部分
    的頭像 發表于 04-01 16:16 ?6602次閱讀
    淺析CMOS電路的<b class='flag-5'>靜態</b>功耗和動態功耗

    嵌入式C語言面試大挑戰

    C++中static關鍵字除了具有C中的作用還有在類中的使用在類中,static可以用來修飾靜態數據成員和靜態
    發表于 03-05 14:18 ?384次閱讀
    嵌入式<b class='flag-5'>C</b>語言面試大挑戰
    赌百家乐官网怎样能赢| 三公百家乐官网在线哪里可以玩| 百家乐官网平预测软件| G3娱乐城| 菲律宾百家乐开户| 游戏机百家乐官网的技术| 大发888官方hgx2dafa888gwd| 找真人百家乐官网的玩法技巧和规则| 太阳城集团| 百家乐正网包杀| 澳门百家乐官网赢钱技术| 真人游戏网| 百家乐赌博筹码大不大| 新时代百家乐官网的玩法技巧和规则| 公主岭市| 威尼斯人娱乐平台官网| 百家乐什么叫缆| 百家乐官网游戏机图片| 威尼斯人| 德州扑克吧| 大发888方官| 百家乐电话投注多少| 澳门百家乐官网哪家信誉最好| 足球心水论坛| 太阳城娱乐城网址| 澳门百家乐奥秘| 正品百家乐官网玩法| 百家乐官网娱乐官网网| 百家乐官网游戏解码器| 定做百家乐官网桌子| 保单机百家乐官网破解方法| 博爱县| 博狗百家乐官网开户| 百家乐官网游戏规范| 代理百家乐官网试玩| 百家乐官网在线赌场娱乐网规则 | 威尼斯人娱乐城备用网| 百家乐官方网站| 大发888娱乐城 qq服务| 顶级赌场连环夺宝下注有什么窍门| 东方太阳城|