如何继承静态成员?

时间:2014-01-19 22:55:42

标签: c++ inheritance static

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

class Base
{
public:
    static int member;
};

class Derived : Base
{
};

Derived::member = 2;
Base::member = 0;

因此:Derived::member == 0;

如何实现Derived::member == 2

的模式

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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