如何继承静态成员

How inherit static members?

本文关键字:静态成员 继承 何继承      更新时间:2023-10-16

我正在努力让我的派生类继承静态成员。

class Base
{
public:
    static int member;
};
class Derived : Base
{
};
Derived::member = 2;
Base::member = 0;

因此: Derived::member == 0;

如何实现Derived::member == 2的模式?

静态

成员不能继承,因为它们属于声明它们的类(因为它们实际上只是具有一些更高级访问权限的全局变量),但派生类仍然可以访问它们而无需编写Base::(当然它们必须至少是protected)。访问还意味着您可以设置它们。

不能继承基类的静态成员变量,因为它们属于类,而不仅仅是类的特定实例。因此,所有基类和派生类(以及它们的实例)将共享相同的静态成员变量,并且所有基类和派生类(以及它们的实例)都将看到它的任何更改。