C++进阶——类的继承

  1. 继承与派生
    在这里插入图片描述
    继承的目的:尽可能的重用原有的类,实现设计与代码的重用
    派生的目的:原有的类不能满足要求,需要对原有的类进行改造
    单继承:有一个原有的基类在这里插入图片描述
    在这里插入图片描述
    派生类的成员:吸收原有基类的成员、改造基类的成员、新增类的成员
    在这里插入图片描述

2.继承方式
在这里插入图片描述
公有继承、私有继承、保护继承在这里插入图片描述
实例:公有继承
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实例:私有继承
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.基类与派生类之间的类型转换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上述main中三个fun调用都是调用的Base1中的display函数在这里插入图片描述
特别注意:不要重新定义继承而来的非虚函数

5.派生类的构造函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实例:
在这里插入图片描述
在这里插入图片描述
构造顺序:按照派生类的继承顺序自左向右一次执行相应的基类的构造函数,即使基类的构造函数中不需要参数也会执行其构造函数,执行完以后再执行派生类自己的对象的构造函数。
上述例子中执行构造函数的顺序:Base2,Base1,Base3,Base1,Base2,Base3.前三个是继承的基类的构造函数,后三个是该派生类自己的参数列表的顺序

6.派生类的复制构造函数
在这里插入图片描述
在这里插入图片描述
7.派生类的析构函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
析构的顺序:和构造的顺序正好完全相反,先执行派生类的私有成员的析构,自底向上,在执行继承的基类的析构函数,自右向左
在这里插入图片描述
在这里插入图片描述
8.访问从基类继承的成员
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.虚基类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

发布了217 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_31672701/article/details/103884922
今日推荐