【C++】继承最全解析(什么是继承?继承有什么用?)
目录
一、前言
二、什么是继承 ?
💢继承的概念💢
💢继承的定义💢
🥝定义格式
🍇继承权限
三、基类与派生类对象的赋值转换
四、继承的作用域
五、派生类中的默认成员函数
💢默认成员函数的调用 💢
🔥构造函数与析构函数🔥
🔥拷贝构造🔥
🔥赋值运算符重载 🔥
💢显示成员函数的调用 💢
🔥构造函数 🔥
🔥拷贝构造 🔥
🔥赋值运算符重载 🔥
🔥析构函数🔥
六、继承与友元
七、继承与静态成员
八、菱形继承
💧 单继承💧
💧 多继承💧
💧 菱形继承💧
🍍概念
🍉现象
九、继承和组合
十、继承的总结和反思
十一、共勉
一、前言
继承 是 面向对象三大特性之一(封装、继承、多态),所有的面向对象(OO)语言都具备这三个基本特征,封装相关概念已经在《类和对象》系列中介绍过了,今天主要学习的是 继承,即如何在父类的基础之上,构建出各种功能更加丰富的子
二、什么是继承 ?
什么是继承?是继承 -- 遗产 还是继承 -- 花呗?答案都不是,先来看看官方解释:
继承(inheritance)机制是 ----面向对象程序设计使代码可以复用的重要的手段,它允许程序员在保持原有基类(父类)特性的基础上进行扩展,增加功能,这样产生新的类,称为派生类(子类)
💢继承的概念💢
继承相关概念:
- 被继承对象:父类 / 基类 (base)
- 继承方:子类 / 派生类 (derived)
继承的本质 就是 ------------ 复用代码
举个例子 : 假设我现在要设计一个校园管理系统,那么肯定会设计很多角色类,比如学生、老师、保安、保洁等等之类的。
设计好以后,我们发现,有些数据和方法是每个角色都有的,而有些则是每个角色独有的。
为了复用代码、提高开发效率,可以从各种角色中选出共同点,组成 基类,比如每个 人 都有姓名、年龄、联系方式等基本信息,而 教职工 与 学生 的区别就在于 管理与被管理,因此可以在 基类 的基础上加一些特殊信息如教职工号 表示 教职工,加上 学号 表示学生,其他细分角色设计也是如此
这样就可以通过 继承 的方式,复用 基类 的代码,划分出各种 子类
像上面共同拥有的数据和方法我们可以重新设计一个类Person ,然后让 Student 和 Teacher 去继承它,如下:
// 大众类 --- 基础属性 class Person { public: Person(string name = string(), string tell = string(), int age = int()) :_name(name) ,_tell(tell) ,_age(age) {} void Print() { cout