静态成员是C++类的一个特殊成员,它属于类而不属于类的任一对象。
一、静态数据成员
使用static修饰符声明静态数据成员:
class MyClass {
static int count; // 静态成员变量
};
静态成员存储在全局空间,所有对象共享一份数据。
二、静态函数成员
静态成员函数也使用static修饰:
class MyClass {
public:
static void func() {
// 静态成员函数
}
};
静态函数无法访问非静态成员。
三、类外初始化
静态成员需要在类外实现初始化:
int MyClass::count = 0; // 静态成员初始化
四、静态成员访问
通过类名直接访问静态成员,不需要对象:
MyClass::count++;
MyClass::func();
五、常见用途
静态成员常用于实现单例模式、统计类对象数等。
六、静态变量线程安全
对于多线程环境,静态变量需要加锁保证线程安全。
正确利用静态成员可以编写更优雅的类与对象。