【发布时间】:2011-05-25 14:49:03
【问题描述】:
当我在一个类中声明一个受保护的数据成员时,这意味着它不能访问外部世界,而是派生类。我的问题是
从派生类派生的类是否可以访问?
【问题讨论】:
标签: c++ oop access-specifier
当我在一个类中声明一个受保护的数据成员时,这意味着它不能访问外部世界,而是派生类。我的问题是
从派生类派生的类是否可以访问?
【问题讨论】:
标签: c++ oop access-specifier
实际上,受保护的数据成员只能使用受保护的公共继承来访问。
这是一个在派生类中无法访问受保护成员的示例:
class Base
{
protected:
int iBase;
};
class Derived : private Base
{
// iBase not accessible
};
【讨论】:
是的。 (顺便说一句,你可以简单地尝试一下。)
【讨论】:
是的,受保护的数据成员可以在继承层次结构中一路访问。
通常最好避免使用受保护的数据。另一种方法是编写访问私有数据的受保护方法。这将数据封装在单个类中。它还可以轻松为数据更改设置断点。
【讨论】: