我有一个基类,比如说BassClass
,有一些字段,我将它们保护起来,还有一些纯虚函数。然后是派生类,比如说DerivedClass
, like class DerivedClass : public BassClass
。 DerivedClass 不应该继承 BassClass 的受保护字段吗?当我尝试编译 DerivedClass 时,编译器抱怨 DerivedClass 没有任何这些字段,这里出了什么问题?
谢谢
If BassClass
(原文如此)和DerivedClass
是模板,并且BassClass
您想要访问的成员DerivedClass
未指定为从属名称,它将不可见。
E.g.
template <typename T> class BaseClass {
protected:
int value;
};
template <typename T> class DerivedClass : public BaseClass<T> {
public:
int get_value() {return value;} // ERROR: value is not a dependent name
};
要获得访问权限,您需要提供更多信息。例如,您可以完整指定成员的姓名:
int get_value() {return BaseClass<T>::value;}
或者您可以明确表示您指的是类成员:
int get_value() {return this->value;}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)