首页 > 其他分享 >继承权限

继承权限

时间:2023-02-25 23:55:06浏览次数:33  
标签:访问 继承 子类 成员 公有 私有 权限

类的继承的权限有三种:私有,保护和公有

从访问对象的角度来说一共包含三类访问对象:

  • 类的实例
  • 友元函数和友元类
  • 类的成员函数

针对这三种访问对象我们较为清晰分出继承的访问权限变更。

创建一个父类对象 Father,它有三种权限的成员和一个默认构造函数:

class Father {
private :
    int a;
protected:
    int b;
public:
    int c;

    Father() {
        a = 1;
        b = 2;
        c = 3;
    }
};
访问权限
权限 私有 保护 公有
成员 a b c
类的实例 ❌ 
友元
类的成员函数

可见三种不同访问权限的成员,友元函数和友元类的访问权限等级与类成员函数访问权限等级相同。而类的实例只能访问公有权限的成员。

  特别注意:友元关系不具有传递性和继承性。

  • 私有继承后,子类对所有父类成员的访问变为私有权限。
私有继承
权限 私有 保护 公有
成员 a b c
子类的实例 ❌ 
子类的成员函数
  • 保护继承后,父类公有成员的访问权限变为保护,其他两种不变。
保护继承
权限 私有 保护 公有
成员 a b c
子类的实例 ❌ 
子类的成员函数
  • 公有继承后,基类的各种权限不变,但是子类的成员函数无法访问父类的私有成员。
公有继承
权限 私有 保护 公有
成员 a b c
子类的实例 ❌ 
子类的成员函数

标签:访问,继承,子类,成员,公有,私有,权限
From: https://www.cnblogs.com/meetalone/p/17155692.html

相关文章