【发布时间】:2010-12-21 06:48:50
【问题描述】:
我有一个基类,比如BassClass,有一些字段,我让它们受到保护,还有一些纯虚函数。然后是派生类,比如DerivedClass,比如class DerivedClass : public BassClass。 DerivedClass 不应该从 BassClass 继承受保护的字段吗?当我尝试编译 DerivedClass 时,编译器抱怨 DerivedClass 没有任何这些字段,这里有什么问题?
谢谢
【问题讨论】:
-
是的,您所描述的听起来应该可以。这可能归结为您的代码是如何编写的。给我们一个重新创建编译器错误的基本示例,然后我们可以为您提供帮助。
-
您是从模板类继承的吗?如果是这样,则需要在从基类访问成员变量时使用this->。
-
“继承受保护的字段”是什么意思?任何子类总是具有其基类的所有字段,无论它们是公共的、受保护的还是私有的。问题是谁可以访问它们 - 如果成员受到保护,这意味着只有 DerivedClass 内部的代码可以访问该成员,而 DerivedClass 外部查看 DerivedClass 类型的对象的代码无法访问它。
标签: c++ inheritance field protected