1. 程式人生 > >如何在類中定義static成員

如何在類中定義static成員

在類中直接寫

class Person
{
	private:
		static int a = 9;
};

這樣寫是會報錯,C++不允許在類內初始化非常量靜態成員。 那你可能會這麼想static不是會自己初始化 不賦值不就行了。

class Person
{
	private:
		static int a;
	public:
		int getInt(){return a;}
};

這樣寫編譯器還是會報錯,說找不到該變數。

因此我們可以得出: 在類中寫 static int a; 只是聲明瞭一個變數,並沒有為其分配記憶體。因此如果要在類中宣告靜態成員,需在外部定義,在外部定義時不需要再加static。 例如:

class Person
{
	private:
		static int a;
};
int Person::a = 0;

這樣就完成了類中static成員的宣告和定義。