温馨提示×

c++静态变量能继承吗

c++
小樊
86
2024-11-19 19:52:53
栏目: 编程语言

C++ 静态成员变量不能被子类继承。静态成员变量属于类本身,而不是类的实例。这意味着它们与整个类相关联,而不是与类的特定对象相关联。

当一个类定义了静态成员变量时,该变量在所有类的实例之间共享。子类不会继承父类的静态成员变量,但可以在子类中声明自己的静态成员变量,或者隐藏父类的静态成员变量(如果需要)。

以下是一个示例,说明了静态成员变量的继承行为:

#include <iostream>

class Base {
public:
    static int staticVar;
};

int Base::staticVar = 10;

class Derived : public Base {
public:
    static int staticVar;
};

int Derived::staticVar = 20;

int main() {
    std::cout << "Base staticVar: " << Base::staticVar << std::endl; // 输出 10
    std::cout << "Derived staticVar: " << Derived::staticVar << std::endl; // 输出 20
    return 0;
}

在这个例子中,Base 类有一个静态成员变量 staticVar,其值为 10。Derived 类也有一个名为 staticVar 的静态成员变量,其值为 20。尽管 Derived 类是从 Base 类派生的,但它并没有继承 Base 类的静态成员变量。相反,它定义了自己的静态成员变量,覆盖了父类的静态成员变量。

0