1.单继承多继承

  派生类继承的内容:

    原有基类成员,新增新的数据成员函数成员,

    一般情况下,构造函数和析构函数不被继承,而C++11中使用using可以继承

2.派生类访问权限:

  • 公有继承:

    基类的public、protected、private属性在派生类中不变

    派生类的成员函数:对基类的public、protected能访问,private不能直接访问,可通过公有接口访问

    派生类的对象:只能访问基类public成员    

  • 私有继承: 

    基类的public、protected、private属性在派生类中都变成private

    派生类的成员函数:对基类的public、protected能访问,private不能直接访问,可通过公有接口访问

    派生类的对象:不能访问基类任何成员 

  • 保护继承:

    基类的public、protected属性在派生类中都变成protected,

    派生类的成员函数:对基类的public、protected能访问,private不能直接访问,可通过公有接口访问

    派生类的对象:不能访问基类任何成员 

3.类型转换:基类与派生类之间  

  公有派生类对象可以作为基类对象使用

4.派生类的构造函数、复制构造函数、析构函数

  • 构造函数
    • 从基类继承构造函数:using B::B;
    • 单继承:
      • 派生类名::派生类名(基类形参,派生类形参):基类名(参数表),派生类初始化表{};
    • 多继承:
      • 派生类名::派生类名(基类形参,派生类形参):基类名1(参数表1),基类名2(参数表2),派生类初始化表{};
    • 多继承和类组合时的构造函数:
      • 派生类名::派生类名(基类形参,派生类形参):基类名1(参数表1),基类名2(参数表2),本类成员(对象成员)派生类初始化表{};
    • 调用构造函数顺序:先基类,后派生类,基本按照声明定义的顺序
  • 复制构造函数
    • 先调用基类复制构造函数,后派生类复制构造函数  
  • 析构函数
    • 先调用派生类析构,再调用基类析构
  • 访问从基类继承的成员
    • 和派生类同名的成员的基类调用,加基类名::限定来访问

5.虚基类virtual 二义性冗余

  菱形继承时二义性

 

posted on 2019-01-08 18:12  柠檬檬檬  阅读(200)  评论(0编辑  收藏  举报