我正在努力让我的派生类继承我想要的静态成员。
class Base
{
public:
static int member;
};
class Derived : Base
{
};
Derived::member = 2;
Base::member = 0;
因此:Derived::member == 0;
如何实现Derived::member == 2
?
答案 0 :(得分:1)
静态成员不能被继承,因为它们属于声明它们的类(因为它们实际上只是具有更高级访问权限的全局变量),但是派生类仍然可以访问它们而无需编写Base::
(当然,他们必须至少protected
)。访问也意味着您可以设置它们。
答案 1 :(得分:0)
您不能继承基类的静态成员变量,因为它们属于类而不仅仅是类的特定实例。因此,所有基类和派生类(以及它们的实例)将共享相同的静态成员变量,并且所有基类和派生类(以及它们的实例)都会看到它的任何更改。