1 C++中的静态成员变量
1.1 C++中静态成员变量的使用方法
在C++中可以定义静态成员变量:
- 静态成员变量属于整个类所有。
- 静态成员变量的生命期不依赖于任何对象。
- 可以通过类名直接访问公有静态成员变量。
- 所有对象共享类的静态成员变量。
- 可以通过对象名访问公有静态成员变量。
静态成员变量的特性:
- 在定义时直接通过static关键字修饰。
- 静态成员变量需要在类外单独分配空间。
- 静态成员变量在程序内部位于全局数据区。
语法规则:
Type ClassName::VarName = value;
静态成员变量定义方式如下:
// test.h
class Test
{
private:
static int m_a;
};
// test.cpp
int m_a = 0; // 这里可以赋值也可以不赋值
对于非const的类静态成员,只能在类的实现文件中初始化,并且只要在声明处加上static,实现处不需要加static。
对于const类静态成员,可以在类内设置初始值,也可以在类的实现文件中设置初始值(但是不能同时在这两个地方初始化,只能初始化1次,否则编译出错)。需要注意的是,实现和声明处都必须加上const。
// test.h
class Test
{
private:
const static int m_a = 0;
};
// test.cpp
cosnt int Test::m_a;
参考资料: