1.對於類靜態變數的初始化,用下面方法。
1 //.h標頭檔案中
2 class a
3 ;靜態成員的初始化應放在.cpp中而不是.h中。
因為h可能被多個cpp包含(#include),這種情況下,如果是在h中初始化靜態成員的 就會造成編譯期間的「重定義」錯誤。
1 //.cpp檔案
2 const int a::i=1; //定義前置
定義要前置放在類實現最前面,避免有時候放到了用到的函式後面。
2.對於靜態常量的初始化,vc6編譯器僅支援下面方法
複製**
1 //.h標頭檔案
2 class a
3 ;7 //.cpp檔案
8 const int a::i=1;
複製**
注意這種方法一定要把const int a::i=1;放到類實現部分的最前面。
因為後邊成員函式可能需要用到他的值。
gcc、mingw除了上面的方法之外也可用下面的方法:
1 class a
2 ;
C 靜態成員變數,靜態成員函式
資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...
C 靜態成員 2 靜態資料成員
目錄 1.靜態成員的構造 2.靜態成員的訪問 3.靜態成員的初始化 include class a class b int main 輸出 b s constructor called 結論 程式只呼叫了b的建構函式,而沒有呼叫a的建構函式。原因很簡單,靜態成員僅僅在類宣告的時候而宣告,但是不會定義...
C 靜態成員和靜態成員函式
一 靜態資料成員 類體中的資料成員的宣告前加上static關鍵字,該資料成員就成為了該類的靜態資料成員。和其他資料成員一樣,靜態資料成員也遵守public protected private訪問規則。同時,靜態資料成員還具有以下特點 1 靜態資料成員的定義。靜態資料成員實際是類域中的全域性變數,其定...