c++继承中的构造和析构

  • 类型兼容性原则
    • 类型兼容规则中所指的替代包括以下情况:
  • 继承中的对象模型
  • 继承中构造和析构
    • 继承中的构造析构调用原则
    • 继承与组合混搭情况下,构造和析构调用原则
  • 继承中的同名成员变量处理方法
  • 派生类中的static关键字
  • 总结

类型兼容性原则

类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员。这样,公有派生类实际就具备了基类的所有功能,凡是基类能解决的问题,公有派生类都可以解决。

类型兼容规则中所指的替代包括以下情况:

子类对象可以当作父类对象使用
子类对象可以直接赋值给父类对象
子类对象可以直接初始化父类对象
父类指针可以直接指向子类对象
父类引用可以直接引用子类对象
在替代之后,派生类对象就可以作为基类的对象使用,但是只能使用从基类继承的成员。
类型兼容规则是多态性的重要基础之一。

总结:子类就是特殊的父类 (base *p = &child;)

c++继承中的构造和析构相关推荐

  1. C++继承机制(二)——继承中的构造和析构顺序、继承同名成员的处理方式

    目录: C++继承机制(一)--基本语法.三种继承方式.继承哪些数据 C++继承机制(二)--继承中的构造和析构顺序.继承同名成员的处理方式 C++继承机制(三)--多继承.菱形继承.虚继承原理 本篇 ...

  2. C++继承中的构造与析构

    文章目录 1 C++继承中的构造 1.1 子类对象初始化父类成员的方式 1.2 子类对象的构造 2 C++继承中的析构 2.1 子类对象的析构 1 C++继承中的构造 1.1 子类对象初始化父类成员的 ...

  3. 【C++深度剖析教程25】继承中的构造与析构

    今天来学习C++中继承的构造与析构,有兴趣一起学习的加qq:1126137994 1.问题 如何初始化父类成员?父类构造函数与子类构造函数有什么关系? 子类对象是如何构造的? 子类中可以定义构造函数 ...

  4. C++_类和对象_C++继承_继承中的构造和析构顺序---C++语言工作笔记064

    然后我们再去看c++中的构造和析构函数的执行的顺序. . 直接用案例说明,可以看到,上面呢,我们写个Base类,然后 写这个类的构造方法. 然后我们在Base类中写上构造方法,和析构方法. 然后我们再 ...

  5. (转)剖析Delphi中的构造和析构

    剖析Delphi中的构造和析构 1 Delphi中的对象模型: 2 1.1 对象名表示什么? 2 1.2 对象存储在哪里? 2 1.3 对象中存储了什么?它们是如何存储的? 3 2 构造函数与创建对象 ...

  6. 继承中构造和析构顺序

    1.子类继承父类后,当创建子类对象,也会调用父类的构造函数 2.继承中先调用父类构造函数,再调用子类构造函数,析构顺序与构造相反 #include<iostream> using name ...

  7. c/c++入门教程 - 2.4.6 继承、公共继承、保护继承、私有继承、virtual虚继承(概念、语法、方式、构造和析构顺序、同名成员处理、继承同名静态成员处理、多继承语法、菱形继承、钻石继承)

    目录 4.6 继承 4.6.1 继承的基本语法 4.6.2 继承方式 4.6.3 继承中的对象模型 4.6.4 继承中构造和析构顺序 4.6.5 继承同名成员处理方式 4.6.6 继承同名静态成员处理 ...

  8. c++中的继承--2(继承中的析构函数和构造函数,继承中同名成员,继承中静态成员)

    继承中的构造函数和析构函数 继承中的构造和析构顺序 子类创建对象时,先调用父类的构造,然后调用自身构造 析构顺序与构造顺序相反 子类不会继承父类的构造函数和析构函数 如果父类中没有合适默认构造,那么子 ...

  9. c++继承-----继承中构造函数写法

    父类中的属性: 调用父类的构造函数初始化 成员函数的方式初始化 子类中的构造函数: 必须要调用父类构造函数 必须采用初始化参数列表的方式 子类想构造无参对象,父类必须要写无参构造函数(隐式调用构造函数 ...

最新文章

  1. java image filters[02]-过滤器初探
  2. python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...
  3. windows系统下jenkins环境搭建与基本使用
  4. Cocos-2d 坐标系
  5. transform css3 的使用及理解
  6. java.lang.RuntimeException: Invalid action class configuration that references an unknown class name
  7. MVC3快速搭建Web应用(二)
  8. 查看表字段信息 sql,mysql,oracle
  9. 【付费毕设】php mysql社团报名管理系统
  10. python中如何创建一个空列表_Python创建空列表的字典2种方法详解
  11. 机器学习基础(八)——感知机(iterative optimization)
  12. python在线编辑器手机-‎App Store 上的quot;Python AI - 代码编辑器”
  13. unity3d脚本编程
  14. 实时视频传输协议RTP
  15. 安装X61驱动 xp
  16. pyppeteer如何更改默认chrome路径
  17. mysql触发器更新自己表_mysql 触发器更新自己表|单表操作 阿星小栈
  18. 数据可视化图表类型_数据可视化中12种最常见的图表类型
  19. 如何选择适合你的兴趣爱好(九),钓鱼
  20. 【人脸识别】基于 Gabor+SVM和PCA+SVM实现人脸识别matlab源码含 GUI

热门文章

  1. 一个合格的web前端程序员要学会哪些技能?
  2. web前端技术分享:web前端的求职前景好不好?
  3. 前端技巧:谷歌浏览器的font boosting[Text Autosizer]
  4. 迅捷路由连接服务器未响应,迅捷路由器通过falogin.cn登录不了管理界面的解决办法...
  5. 工程代码_特征工程学习,19 项实践 Tips!代码已开源!
  6. MySQL数据类型与操作
  7. 电气:6机30节点经济调度(考虑负荷平衡、线路容量、斜坡约束)代码实现
  8. VTK:方向标记用法实战
  9. OpenCASCADE绘制测试线束:拓扑命令之3D模型周期性
  10. boost::sort模块实现使用最坏情况分布进行扩展排序的排序示例