1. 程式人生 > >c++中對類中私有成員中的靜態變數初始化

c++中對類中私有成員中的靜態變數初始化

1.static成員的所有者是類本身和物件,但是多有物件擁有一樣的靜態成員。從而在定義物件時不能通過建構函式對其進行初始化。
2.靜態成員不能在類定義裡邊初始化,只能在class body外初始化。
3.靜態成員仍然遵循public,private,protected訪問準則。
4.靜態成員函式沒有this指標,它不能返回非靜態成員,因為除了物件會呼叫它外,類本身也可以呼叫。
今天寫程式出現:error LNK2001: unresolved external symbol "private: static int  cgns" ([email protected]@@0HA)的錯誤,於是在網上找了下,發現是對static靜態變數初始化理解有誤,因此這裡記下來,為了以後看
這裡拿一個例子來說明:
.h檔案
class Test{ static double A;staticdouble B();};
.cpp檔案
double Test::A= 2.0; //正確的靜態成員初始化
//所有的靜態成員在類體外定義時都不再寫staticvoid Test::B(double tt)
{
A= tt;
}