我最近不得不这样做:
class A { };
class B : private A { };
class C : public B {
public:
A *myA;
};
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在尝试的三个编译器中出错了.当我改变宣言时myA,::A *myA一切正常.我在C++标准中探讨过,发现了第11.2节第3段,它说:
注意:私有基类的成员可能无法作为继承的成员名称访问,但可以直接访问.
哪个是相关的,但不清楚.为什么名称A无法访问?如果A没有隐藏会出现什么问题?
谢谢,
-Ben
c++ ×1