在C++中,类的继承不会继承静态成员。静态成员属于类本身,而不是类的实例。当你在派生类中声明一个与基类相同的静态成员时,它实际上是在派生类中创建一个新的静态成员,而不是继承基类的静态成员。
以下是一个示例,说明如何在派生类中声明与基类相同的静态成员:
#includeclass Base { public: static int staticMember; }; int Base::staticMember = 10; // 初始化基类的静态成员 class Derived : public Base { public: static int staticMember; // 声明与基类相同的静态成员 }; int Derived::staticMember = 20; // 初始化派生类的静态成员 int main() { std::cout << "Base static member: " << Base::staticMember << std::endl; // 输出 10 std::cout << "Derived static member: " << Derived::staticMember << std::endl; // 输出 20 return 0; }
在这个示例中,Base
类有一个名为 staticMember
的静态成员,其值为 10。Derived
类继承自 Base
类,并声明了一个与基类具有相同名称的静态成员。这不会导致基类的静态成员被继承到派生类中,而是在派生类中创建了一个新的静态成员,其值为 20。