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++ 的類別
作者:張凱慶*/
count 為 static 的資料成員
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 |
$ |
相關教學影片