C++ 速查手冊

9.9 - static 成員

類別中宣告為 static 的成員屬於類別,獨立於物件而存在,舉例如下

#include <iostream>
  
class Demo {
public:
    Demo() {
        std::cout << "constructor" << std::endl;
        count++;
    }
    
    static int get_count() {
        return count;
    }
    
private:
    static int count;
};

int Demo::count = 0;

int main() {
    Demo d1;
    std::cout << Demo::get_count() << std::endl;
    Demo d2;
    std::cout << d2.get_count() << std::endl;
    Demo d3;
    std::cout << d3.get_count() << std::endl;
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:u0909.cpp
   功能:示範 C++ 的類別
   作者:張凱慶*/

countstatic 的資料成員

static int count;

存取宣告為 static 的資料成員得用 static 的成員函數

static int get_count() {
    return count;
}

count 用來計算 Demo 物件建立的次數,這必須在類別定義外先初始化

int Demo::count = 0;

由於 get_count()static 成員函數,因此可以直接用類別名稱呼叫

std::cout << Demo::get_count() << std::endl;

編譯執行,結果如下

$ g++ u0909.cpp
$ ./a.out
constructor
1
constructor
2
constructor
3
$

相關教學影片

上一頁 9.8 - friend 成員
回 C++ 速查手冊首頁
下一頁 9.10 - static const 成員
回 C++ 教材
回程式語言教材首頁