zoukankan      html  css  js  c++  java
  • C++中的三种继承关系

    C++中的三种继承关系


    先看类中声明成员时的三种访问权限

    • public : 可以被任意实体访问

    • protected : 只允许子类及本类的成员函数访问

    • private : 只允许本类的成员函数访问

    在类继承时也是 public、protected 和 private 三种方式, 当成员的访问权限和继承相结合时,得到的就是C++中对成员的综合权限了。


    声明类成员时的权限与继承时的权限组合后的结果:

    基类中继承方式子类中对基类成员的访问权限
    public public public
    public protected protected
    public private private
    protected public protected
    protected protected protected
    protected private private
    private public 子类无权访问
    private protected 子类无权访问
    private private 子类无权访问

    由以上组合结果可以看出

    1、public继承不改变基类成员的访问权限

    2、private继承使得基类所有成员在子类中的访问权限变为private

    3、protected继承将基类中public成员变为子类的protected成员,其它成员的访问 权限不变。

    4、基类中的private成员不受继承方式的影响,子类永远无权访问。


    在子类中恢复基类的访问权限

    C++支持以两种方式实现该目的

    • 方法一,使用using 语句,这是C++标准建议使用的方式

    • 方法二,使用访问声明,形式为 base-class::member;, 位置在子类中适当的访问声明处。(注,只能恢复原有访问权限, 而不能提高或降低访问权限)

    同步发布:http://www.fengbohello.top/point/p/838

    参考:http://blog.csdn.net/zhouwei1221q/article/details/47953513

  • 相关阅读:
    创意:网络族谱
    排列组合的要点
    创意:人生记录
    纽康悖论谜题
    发财的要点
    c#4.0协变逆变的理解
    关于开发自我训练课程
    反对继承
    远离疲倦,告别非理性思维
    中国软件正版化的理想模型
  • 原文地址:https://www.cnblogs.com/fengbohello/p/6296406.html
Copyright © 2011-2022 走看看