// 基类 Base
class Base {
public:
int publicMember;
protected:
int protectedMember;
private:
int privateMember;
};
// 公有继承
class PublicDerived : public Base {
public:
void accessBaseMembers() {
publicMember = 1; // 可以直接访问公有成员
protectedMember = 2; // 可以直接访问保护成员
//privateMember = 3; // 无法直接访问私有成员
}
};
int main() {
PublicDerived obj1;
obj1.accessBaseMembers();
cout << obj1.publicMember << endl;
cout << obj1.protectedMember << endl;
为什么在public派生类中可以访问protected成员,而在主函数中无法cout
受保护的成员,顾名思义它是受这个类保护的,只有它和它的子类内部可以直接访问, main函数中是外围调用, 无法直接访问