1.對於類靜態變量的初始化,用下面方法。 1 //.h頭文件中 2 class a 3 { 4 public: 5 const static int i; 6 }; 靜態成員的初始化應放在.cpp中而不是.h中。 因為h可能被多個cpp包含(#include),這種情況下,如果是在h中初始化靜態成員的 就會造成編譯期間的“重定義”錯誤。 1 //.cpp文件 2 const int a::i=1; //定義前置 定義要前置放在類實現最前面,避免有時候放到了用到的函數後面。 2.對於靜態常量的初始化,vc6編譯器僅支持下面方法 復制代碼 1 //.h頭文件 2 class a 3 { 4 public: 5 const static int i; 6 }; 7 //.cpp文件 8 const int a::i=1; 復制代碼 注意這種方法一定要把const int a::i=1;放到類實現部分的最前面。 因為後邊成員函數可能需要用到他的值。 gcc、mingw除了上面的方法之外也可用下面的方法: 1 class a 2 { 3 public: 4 const static int i=1; 5 };