当我们需要
- 不依赖对象就可以访问静态成员变量
- 必须保证静态成员变量的安全性
- 方便快捷得获取静态成员变量的值
要用到静态成员函数
定义格式为:
static 返回类型 静态成员函数名(参数表);
静态成员函数是类的一部分,而不是对象的一部分,如果要在类外调用公用的静态成员函数,格式
类名::静态成员函数名(实参表);
对象名.静态成员函数名(实参表);
-
静态成员函数不能访问普通成员变量(函数),需通过对象间接访问成员变量(函数)
-
静态成员函数不属于某一对象,因为它没有this指针
class Demo
{
private:
int i;
public:
int getI();
static void StaticFunc(const char* s);
static void StaticSetI(Demo& d, int v);
};
void Demo::StaticSetI(Demo& d, int v)
{
d.i = v;
}
参考 https://blog.csdn.net/qq_37375427/article/details/78808900