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:优势:
可通过对象和::两种方式进行访问