我最近不得不做这样的事情:
class A { };
class B : private A { };
class C : public B {
public:
A *myA;
};
int main() {
return 0;
}
我在我尝试的三个编译器中遇到了错误。当我将声明更改myA
为::A *myA
一切正常时。我翻遍了 C++ 标准,发现第 11.2 节第 3 段说:
注意:私有基类的成员可能无法作为继承的成员名称访问,但可以直接访问。
这是相关的,但不清楚。为什么名字A
无法访问?如果A
不隐藏会出现什么问题?
谢谢,
-本