C++静态成员变量
C++中的静态成员变量是指在类中声明的但不属于任何对象的变量,它的作用域是整个类,静态成员变量在类的所有对象中共享,可以被类的所有成员函数访问,只有一份拷贝。
使用方法
在类中声明静态成员变量的方法是在变量定义前加上关键字static,如:
class A
{
public:
static int a;
void func();
};
在类之外定义静态成员变量的方法是,在类之外使用作用域解析运算符::来定义静态成员变量,如:
int A::a = 0;
好处
- 静态成员变量可以被类的所有成员函数访问,可以用来保存类的共享信息,实现类成员之间的通信。
- 静态成员变量只有一份拷贝,可以减少内存的开销,提高程序的运行效率。
- 静态成员变量可以在类外直接使用,可以方便地为类提供全局变量。
限制
- 静态成员变量在类之外必须以全局变量的形式定义,而且必须初始化,否则会出现编译错误。
- 静态成员变量只能被类的成员函数访问,不能被类的构造函数和析构函数访问。
- 静态成员变量在类的所有对象中共享,不能为每个对象提供不同的值。