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:優勢:
可通過對象和::兩種方式進行訪問