91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++類的靜態成員變量實例分析

發布時間:2022-04-24 10:39:38 來源:億速云 閱讀:171 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“C++類的靜態成員變量實例分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C++類的靜態成員變量實例分析”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一、成員變量的回顧

  • 通過對象名能夠訪問 public 成員變量

  • 每個對象的成員變量都是專屬的

  • 成員變量不能在對象之間共享

二、新的需求

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

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

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

下面來看示例:

#include <stdio.h>
int gCount = 0; 
class Test
{
private:
    int mCount;
public:
    Test() : mCount(0)
    {
        gCount++;
    }
    ~Test()
    {
        --gCount;
    }
    int getCount()
    {
        return gCount;
    }
};
Test gTest;
int main()
{
    Test t1;
    Test t2;
    printf("count = %d\n", gTest.getCount());
    printf("count = %d\n", t1.getCount());
    printf("count = %d\n", t2.getCount());
    return 0;
}

輸出結果如下:

C++類的靜態成員變量實例分析

雖然這段代碼可以獲得當前定義對象的數量,但是使用了全局變量,不能保證程序的安全性,那么有什么好的辦法呢?且看下面。

三、靜態成員變量

在 C++ 中可以定義靜態成員變量

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

  • 靜態成員變量的生命期不依賴于任何對象

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

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

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

靜態成員變量的特性

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

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

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

語法規則:

Type ClassName:VarName = value;

下面來看一下靜態成員變量的使用:

#include <stdio.h>
class Test
{
private:
    static int cCount;
public:
    Test()
    {
        cCount++;
    }
    ~Test()
    {
        --cCount;
    }
    int getCount()
    {
        return cCount;
    }
};
int Test::cCount = 0;
Test gTest;
int main()
{
    Test t1;
    Test t2;
    printf("count = %d\n", gTest.getCount());
    printf("count = %d\n", t1.getCount());
    printf("count = %d\n", t2.getCount());
    Test* pt = new Test();
    printf("count = %d\n", pt->getCount());
    delete pt;
    printf("count = %d\n", gTest.getCount());
    return 0;
}

輸出結果如下:

C++類的靜態成員變量實例分析

Test* pt = new Test(); 動態在堆空間生成了一個 test 對象,所以會觸發構造函數的調用,所以 count 變成了 4,delete pt; 后 count 就變成 3 了。

讀到這里,這篇“C++類的靜態成員變量實例分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

荥阳市| 夏津县| 多伦县| 广丰县| 平凉市| 辛集市| 海城市| 津南区| 晴隆县| 镇坪县| 连州市| 怀宁县| 磐安县| 永丰县| 精河县| 临武县| 托里县| 蓬莱市| 霍城县| 台安县| 浙江省| 佛坪县| 板桥市| 二连浩特市| 普兰县| 瑞金市| 惠来县| 荣成市| 英山县| 台州市| 宁海县| 清河县| 伊吾县| 黔南| 洪雅县| 江孜县| 蓬安县| 红安县| 平邑县| 张家川| 绥化市|