1. 程式人生 > >C++靜態成員變數的初始化

C++靜態成員變數的初始化

需要注意的是:靜態資料成員不能在類中初始化,一般在類外和main()函式之前初始化,預設時初始化為0。

1.static成員的所有者是類本身,但是多個物件擁有一樣的靜態成員。從而在定義物件是不能通過建構函式對其進行初始化。

2.靜態成員不能在類定義裡邊初始化,只能在class body外初始化。
3.靜態成員仍然遵循public,private,protected訪問準則。

4.靜態成員函式沒有this指標,它不能返回非靜態成員,因為除了物件會呼叫它外,類本身也可以呼叫

靜態成員屬於全域性變數,是所有例項化以後的物件所共享的,而成員的初始化你可以想象成向系統申請記憶體儲存資料的過程,顯然這種共有物件。不能在任何函式和區域性作用域中初始化。


class point{
public:
	point(){};
//	...
private:
	static int x,y;
};
int point::x = 0;
int point::y = 0;

int main(){
//	...
}