【教程】继承中的访问控制 C++
目录
- 简介
- 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; // 不可访问
}
};