標籤:logs 派生 names highlight data article htm ++ 檔案中
一 . 待用資料成員
類體中的資料成員的聲明前加上static關鍵字,該資料成員就成為了該類的待用資料成員。和其它資料成員一樣,待用資料成員也遵守public/protected/private訪問規則。同時,靜態成員還具有以下特點:
1. 待用資料成員的定義。
待用資料成員實際上是類域中的全域變數。所以,待用資料成員的定義不應該被放在標頭檔中。待用資料成員初始化時不受private和protected訪問限制。
注意:不要試圖在標頭檔中定義待用資料成員。在大多數情況下,這樣做會引起重複定義這樣的錯誤。
2. 待用資料成員被類的所有對象所共用,包括該類衍生類別的對象。即衍生類別對象和基類對象共用基類的待用資料成員。
1 #include<iostream> 2 using namespace std; 3 4 class base{ 5 public: 6 static int _num; 7 }; 8 9 int base::_num = 0;10 11 class derived : public base12 {13 };14 15 int main()16 {17 base a;18 derived b;19 a._num++;20 cout << "base class static data _num is : " << a._num << endl;21 b._num++;22 cout << "derived class static data _num is : " << b._num << endl;23 return 0;
[[email protected] test]$./a.out base class static data _num is : 1derived class static data _num is : 2
由以上程式的執行結果可知,衍生類別和基類的對象共用一個待用資料成員。
3. 待用資料成員可以成為成員函數的選擇性參數,而普通成員函數則不可以。
4. 待用資料成員的類型可以是所屬類的類型,而普通資料成員卻不可以。
1 class base{ 2 public: 3 static base _object1; // 正確,待用資料成員 4 base _object2; // 錯誤 5 };
參考
http://www.jb51.net/article/72387.htm
http://www.jb51.net/article/41775.htm
c++:待用資料成員