受保护成员应该可以从派生类中访问。 那么为什么在下面的代码中我收到了编译错误?
class A {
protected:
A() {};
};
class B : public A {
public:
void g() {
A a; // <--- compiling error: "Protected function A::A() is not accessible ...". Why?
}
};
int main() {
B b;
b.g();
}
我注意到有一个相关的帖子,但那里的类是模板类。我的只是一个“普通”类。 为什么派生类不能访问受保护的基类成员?