当前位置: 首页 > news >正文

C++期末复习总结继承

继承是软件复用的一种形式,他是在现有类的基础上建立新类,新类继承了现有类的属性和方法,并且还拥有了其特有的属性和方法,继承的过程称为派生,新建的类称为派生类(子类),原有的成为基类(父类)

  • 继承的种类

单一继承,继承自一个父类

多个继承,继承自多个父类

不允许继承循环

不允许继承私有成员

继承的声明

派生方式关键词 private、public和protected,规定了派生类成员和类外对象访问基类的权限

如果没有写继承方式,默认为private

派生类的生成过程:吸收基类成员(除去私有、构造函数、析构函数)、改造基类成员(同名覆盖)、添加新成员

公有继承:

public,成员访问权限不变,基类的private成员不可被派生访问,只能通过基类的公有和保护成员函数间接访问,基类的protected成员可以直接被派生类访问,但派生类外只能通过派生类的共有或保护成员函数、基类的成员函数访问

私有继承:

基类的公有成员和保护成员,都将以私有被派生类继承,私有在基类中不可直接访问,必须通过基类的公有函数访问,基类的保护和公有只能在派生类内使用

保护继承:

基类的保护和公有成员在派生类中都讲作为保护成员,只能被派生类的成员函数和友元函数访问,基类的私有成员,只能派生类中通过基类的公有和保护成员间接访问

派生类的构造函数与析构函数:

派生类构造函数执行如下:

按照基类的声明顺序调用基类的构造函数,与派生类的初始化列表顺序无关

按照派生类的成员声明顺序,初始化新增成员对象

执行派生类的构造函数题中的内容

派生类的析构顺序:

首先调用派生类的析构函数(清理派生类的新增成员)

如果派生类有成员对象,调用派生类成员对象所在类的析构函数

在调用普通基类的构造函数

最后调用虚基类的构造函数

多继承的二义性问题:

成员限定符解决:对象.父类::变量

成员重定义:在派生类中新增与基类名称相同的成员

虚基类virtual 要虚化的基类的名字

虚基类的性质:

虚基类使得公共基类得派生中只有一个拷贝,改变基类得变量所有子类得到得变量值也改变

虚基类得派生类必须初始化列表给出初始化,若为列出会调用缺省构造函数,所以虚基类必须要有缺省构造函数.

虚基类得初始化是有最远派生类调用其构造函数,若未给出就调用虚基类的缺省构造

若虚基类没有缺省构造,哪每一个派生类得初始化列表都必须对虚基类进行初始化调用

虚基类注意点:

初始化列表中同时出现虚基类和非基类得构造函数调用,虚基类得构造函数优先于非虚基类

虚基类比普通类的运行效率要低

虚基类的最远派生类对其进行初始化

派生类得对象可以赋值给基类得对象

派生类对象可以初始化基类得引用

派生类得对象地址可以赋值给基类得指针

赋值后,派生类对象就可以作为基类的对象使用,但只能使用基类继承的成员

若基是虚函数 则会被重写为派生类的成员

http://www.lryc.cn/news/266328.html

相关文章:

  • CloudCanal x Debezium 打造实时数据流动新范式
  • Nodejs+Express搭建HTTPS服务
  • 设计模式之-策略模式,快速掌握策略模式,通俗易懂的讲解策略模式以及它的使用场景
  • 【leetcode100-019】【矩阵】螺旋矩阵
  • 【计算机视觉中的多视图几何系列】深入浅出理解针孔相机模型
  • 轻量级Python IDE使用(三)——函数
  • 计算机图形学理论(3):着色器编程
  • ubuntu20.04安装timeshift最新方法
  • 小狐狸ChatGPT付费创作系统小程序端开发工具提示打开显示无法打开页面解决办法
  • DQL-基本查询
  • 漏洞复现-红帆OA iorepsavexml.aspx文件上传漏洞(附漏洞检测脚本)
  • Leetcode 2976. Minimum Cost to Convert String I
  • ZKP Mathematical Building Blocks (2)
  • blender径向渐变材质-着色编辑器
  • 2023美团机器人研究院学术年会成功举办
  • swing快速入门(二十七)
  • Vue 封装echarts柱状图(Bar)组件
  • 异常(Java)
  • vue的插槽解析
  • Spring(3)Spring从零到入门 - Spring整合技术及AOP事务管理
  • 适配器模式学习
  • NET中使用Identity+CodeFirst+Jwt实现登录、鉴权
  • 详解Keras3.0 API: Optimizers
  • 【数据结构】字符串匹配|BF算法|KMP算法|next数组的优化
  • 阿里云 ACK One 新特性:多集群网关,帮您快速构建同城容灾系统
  • vscode自定义代码片段
  • 【贪心算法】专题练习一
  • 【JMeter】使用nmon进行性能资源监控
  • Unity预设体
  • Elasticsearch 写入优化探索:是什么影响了refresh 耗时?