標籤:通過 共用 狀態 程式設計 常量 main 不能 nbsp any
在類型前面加static修飾的資料成員,是隸屬於類的,成為類的待用資料成員,也稱為“類的變數”
待用資料成員被該類的所有對象共用(即所有對象中的這個資料域實際上處於同一個記憶體位置)
待用資料要在實現檔案中賦初值,格式為:
Type ClassName::static_var = Value;
傳回值類型前面加static修飾的成員函數,稱為靜態成員函數,它們不能調用非靜態成員函數;
類的靜態成員(資料,函數)既可以通過對象來訪問,也可以通過類名字類訪問;
#include <iostream>using namespace std;class Test{ static int count;public: Test() { count++; } ~Test() { count--; } static int how_many() { return count; }};int Test::count = 0;void print(Test t){ cout << "tests:" << t.how_many() << endl;}int main(){ Test t1; cout << "test#" << Test::how_many() << endl; Test t2 = t1; cout << "test#" << Test::how_many() << endl; print(t2); cout << "test#" << t1.how_many() << "," << t2.how_many() << endl;
return 0;}
類中的常量成員
使用const修飾的資料成員,稱為類的常量資料成員,在對象的整個生命週期內不可以更改;
常量資料成員只能在建構函式的初始化列表中被設定,不允許在函數中通過賦值來設定;
若用const修飾成員函數,則該成員函數在實現時不能修改類的資料成員, 即函數體中不能有改變對象狀態的語句;
若對象被定義為常量,則它只能調用以const修飾的成員函數,其他成員函數不允許調用;
C++程式設計方法3:類中的靜態成員