C++學習筆記 lesson7 static

static 與類

不會被反覆初始化
將變量的作用域限定在某一個源文件中static 與類

將變量的作用域限定在某一個源文件中

class Demo
{
public:
	static int num;//不屬於對象的,屬於類的,所有的對象都會共用一個,不計算空間
	int other;//屬於對象
	static bool IsOdd(int nums);
	int GetNum()
	{
		return _num;//非靜態方法可以訪問靜態成員, 語法上沒問題,不推薦
	}
private:		
	int _num;
};
//static
// 成員變量
// 1.被對象共享的,但是他是不屬於對象的
// 2.類名直接訪問
// 成員函數
// 1.沒有this指針 (無法訪問非靜態成員,變量和函數)

bool Demo::IsOdd(int nums)//沒有this指針,沒有對象屬性的
{
	//_num = 2;//不能訪問非靜態成員
	return nums % 2;
}
int Demo::num = 100;//靜態變量在外部初始化


//單例模式 計數器
//無法初始化
//獲取一個對象
class Counter
{
public:
	static Counter& GetInstance() 
	{
		static Counter demo;//只會初始化一次
		return demo;
	}
	~Counter()
	{

	}
private:
	Counter(){}
	Counter(const Counter&) {}
	Counter& operator=(const Counter&other) {}
};
int main ()
{
	return 0;
}


發佈了103 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章