一、静态成员变量定义
静态成员变量是属于类的成员变量,而不是属于类的实例的。静态成员变量的特点如下:
- 所有类的实例共享同一个静态成员变量,只有一份内存空间。
- 静态成员变量在编译时分配内存,直到程序结束时才会被释放。
- 静态成员变量可以通过类名直接访问,也可以通过类的实例访问。
- 静态成员变量必须在类外初始化,可以在类外初始化,也可以在类内初始化。
代码示例:
cpp
#include <iostream>
#include <string>
using namespace std;
//在类的声明中使用static关键字声明静态成员变量。
class MyClass{
public:
MyClass(){}
static int staticVar;
};
//在类外初始化静态成员变量
int MyClass::staticVar = 0;
int main()
{
//使用类名直接访问静态成员变量
MyClass::staticVar = 20;
cout<<"staticVar:"<<MyClass::staticVar<<endl;
//使用类的实例访问静态成员变量
MyClass s1;
s1.staticVar = 10;
cout<<"staticVar:"<<s1.staticVar<<endl;
return 0;
}
运行结果:
cpp
staticVar:20
staticVar:10
二、访问权限
静态成员变量和一般的成员变量的访问权限是一样的。
在私有权限里的静态变量也是不能直接访问的。