C++中的静态成员变量是属于类的成员变量,而不是属于类的具体实例的。静态成员变量提供了一种方便的机制,可以在类的所有实例之间共享数据,并且可以用于跟踪类的实例数量、存储全局信息以及实现全局性质的函数或数据。
#include <iostream>class Base{
public:static int count; // 静态成员变量,用于跟踪类实例的数量Base() {count++; // 每次创建新对象时,增加实例计数}~Base() {count--; // 每次销毁对象时,减少实例计数}virtual void printCount() const {std::cout << "Base count: " << count << std::endl;}
};class Derived : public Base {
public:static int count;Derived() {count++; // 每次创建新对象时,增加实例计数}~Derived() {count--; // 每次销毁对象时,减少实例计数}void printCount() const override{std::cout << "Derived count: " << count << std::endl;}
};int Base::count = 0; // 初始化静态成员变量
int Derived::count = 0; // 初始化静态成员变量int main() {Base obj1;Base obj2;Base obj3;obj3.printCount();Derived obj4;Derived obj5;obj5.printCount();return 0;
}
注:如果Derived不定义静态成员变量count,则子类Derived和基类Base共享count变量。