c++

C++类的继承静态成员怎么定义

小樊
81
2024-10-31 10:48:54
栏目: 编程语言

在C++中,类的继承不会继承静态成员。静态成员属于类本身,而不是类的实例。当你在派生类中声明一个与基类相同的静态成员时,它实际上是在派生类中创建一个新的静态成员,而不是继承基类的静态成员。

以下是一个示例,说明如何在派生类中声明与基类相同的静态成员:

#include <iostream>

class 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。

0
看了该问题的人还看了