C++ 静态成员

静态成员是C++类的一个特殊成员,它属于类而不属于类的任一对象。

一、静态数据成员

使用static修饰符声明静态数据成员:

class MyClass {
  static int count; // 静态成员变量
};

静态成员存储在全局空间,所有对象共享一份数据。

二、静态函数成员

静态成员函数也使用static修饰:

class MyClass {
public:
  static void func() {
    // 静态成员函数
  }  
};

静态函数无法访问非静态成员。

三、类外初始化

静态成员需要在类外实现初始化:

int MyClass::count = 0; // 静态成员初始化 

四、静态成员访问

通过类名直接访问静态成员,不需要对象:

MyClass::count++; 
MyClass::func();

五、常见用途

静态成员常用于实现单例模式、统计类对象数等。

六、静态变量线程安全

对于多线程环境,静态变量需要加锁保证线程安全。

正确利用静态成员可以编写更优雅的类与对象。