static方法

1 : static成員函數和普通成員函數的本質區別
無this指針(實質上爲對象的首地址,且成員都默認帶有this指針)

2: 用途:
1)對方法進行分類,調用時以類似於命名空間的形式調用

class opt{
public:
	static void Add();
	static void Delete();
};
void main(){
	opt::Add();
	opt::Delete();
}

2)配合靜態成員批量管理對象

class MyClass{
public:
	MyClass(int x):a(x){
		all.push_back(x);
	}
	void show(){
		cout<<a<<endl;
	}
	static  void show_all{
		for(auto &list:all)
		cout<<*list.a<<endl;
	}
private:
	int a;
};
vector<MyClass *> MyClass::all;
void
void main(){
	MyClass::show_all();
}

3:限制:
靜態方法中不可使用成員函數和成員變量
申明時有static關鍵字即可,定義時不需要
4:優勢:
可通過對象和::兩種方式進行訪問

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章