【发布时间】:2018-05-11 16:53:10
【问题描述】:
我正在使用 private 继承,我惊讶地发现在派生类中不允许使用任何 base 对象。
class A;
class B : private A;
class C : public B;
C::method_1()
{
A* a; // Temporary "A" object for local computation
}
这与继承无关。我不想访问任何this->base method!
此配置在 Visual Studio 中提供 C2247 错误(“'A' 不可访问,因为 'B' 使用 'private' 从 'A' 继承”)。
【问题讨论】:
-
试试
::A* a;而不是A* a;
标签: c++ oop inheritance