C++ 私有继承访问控制

在 C++ 中,私有继承(private inheritance)是指使用 private 关键字继承基类的派生方式。

私有继承的特点:

  • 访问控制变化: 基类的公有成员和保护成员在派生类中变为私有成员。这意味着:
    • 派生类内部可以访问这些成员。
    • 派生类外部无法访问这些成员。
  • 基类私有成员: 派生类无法直接访问基类的私有成员。

访问控制

| 成员类型 | 派生类内部访问 | 派生类外部访问 |

|---|---|---|

| 基类 public | ✔️ | ❌ |

| 基类 protected | ✔️ | ❌ |

| 基类 private | ❌ | ❌ |

代码示例:

class Base {
public:
    int publicMember;
protected:
    int protectedMember;
private:
    int privateMember;
};

class Derived : private Base {
    // ... 
};

在上述代码中:

  • Derived 类私有继承自 Base 类。
  • Derived 类内部可以访问 publicMemberprotectedMember,但不能访问 privateMember
  • Derived 类的外部无法访问 publicMember, protectedMemberprivateMember

注意: 私有继承通常用于实现 "is-implemented-in-terms-of" 的关系,而不是 "is-a" 的关系,因为它限制了对基类成员的访问。

ppt 文件大小:8.81MB