目录
- 简介
- public,protected 和 private
- 继承中的 public,protected 和 private
- 示例
简介
在 C++ 中派生类可以通过 public,protected 和 private 三种修饰符决定基类成员在派生类中的访问级别
public,protected 和 private
- 公有成员(public):可以在任何地方被访问
- 保护成员(protected):只能被类本身及其派生类访问
- 私有成员(private):只能被类本身访问
继承中的 public,protected 和 private
- public 继承中,基类成员的访问级别在派生类中保持不变
- protected 继承中,基类成员中 public 成员在派生类中降为 protected,其余成员的访问控制级别维持不变
- private 继承中,基类成员所有的访问级别变为 private
示例
class Base {
public:int publicVar;
protected:int protectedVar;
private:int privateVar;
};class DerivedPublic : public Base {void accessBaseMembers() {publicVar = 1; // 可以访问protectedVar = 2; // 可以访问// privateVar = 3; // 不可访问}
};class DerivedProtected : protected Base {void accessBaseMembers() {publicVar = 1; // 可以访问,但在派生类外部不可访问protectedVar = 2; // 可以访问// privateVar = 3; // 不可访问}
};class DerivedPrivate : private Base {void accessBaseMembers() {publicVar = 1; // 可以访问,但在派生类外部不可访问protectedVar = 2; // 可以访问,但在派生类外部不可访问// privateVar = 3; // 不可访问}
};