类对象的初始化顺序

新对象的生成经历初始化阶段(初始化列表显式或者隐式的完成<这部分有点像java里面的初始化块>)——> 构造函数体赋值两个阶段

1,类对象初始化的顺序(对于没有父类的成员)

1)初始化阶段:该对象的类成员变量,const成员变量,引用成员变量进行显示初始化(由初始化列表决定),如果没有显式初始化,则进行隐式初始化(对于类成员,调用其默认构造函数)。因此对于没有默认构造函数的类成员变量、const成员变量,引用成员变量必须在初始化列表中进行显式初始化;对于内置变量或者复合类型的成员,如果对象再全局作用域,则进行初始化;如果在局部作用域,不进行初始化

2)调用构造函数赋值:略

2,对于含有父类的子类对象初始化

1)调用基类的构造函数

2)初始化阶段:子类对象的类成员变量,const成员变量,引用成员变量进行显示初始化(由初始化列表决定),如果没有显式初始化,则进行隐式初始化(对于类成员,调用其默认构造函数)。因此对于没有默认构造函数的类成员变量、const成员变量,引用成员变量必须在初始化列表中进行显式初始化。对于内置变量或者复合类型的成员,如果对象再全局作用域,则进行初始化;如果在局部作用域,不进行初始化

3)调用自身的构造函数

析构函数的调用顺序总是和构造函数相反,调用了多少次构造函数(包括复制构造函数),就需要调用多少次析构函数。注意复制构造函数在下列场合执行:

复制构造函数

1)根据同类型的对象初始化另一个对象(和赋值运算符的区别在于是否产生新对象)

2)蒋对象作为实参,传递给一个函数,或者从函数返回时复制一个对象

3)初始化容器或者数组元素(这个是在特定规则下,具体细节可以翻书)

最新文章

  1. [SharePoint 2007/2010]Query SharePoint Calendar Event
  2. centos 7 mini装maridb 10.1 binary版本
  3. Android中Services之异步IntentService
  4. 初学者 的 js 关于checkbox全选的问题
  5. 根据多年经验整理的《互联网MySQL开发规范》
  6. DCM TUTORIAL – AN INTRODUCTION TO ORIENTATION KINEMATICS (REV 0.1)
  7. 一篇不错的讲解Java异常的文章(转载)原作者已没法考证
  8. Thrift搭建分布式微服务(四)
  9. 测试-ConstantForce的驱动方式以及是否穿透
  10. MFC子窗口和父窗口
  11. 对使命召唤OL游戏中队友能相互救治的动作设定的感慨
  12. select options常用操作
  13. 转:VmWare下安装CentOS6图文安装教程
  14. Android解决异常apk on device &#39;0292bea1&#39;: Unable to open sync connection!
  15. DirectFB、Layer、Window、Surface之间关系
  16. 基于REM的移动端响应式适配方案
  17. oss web直传
  18. 一文看懂HTTPS的核心知识
  19. mysql中主外键关系
  20. 如何在Anaconda中实现多版本python共存

热门文章

  1. 洛谷 P3388 【模板】割点(割顶)(Tarjan)
  2. 01: jenkins简介与安装
  3. Python time strptime()方法 时间操作
  4. poj2186--tarjan+缩点(有向图的强连通分量中点的个数)
  5. hadoop批量命令脚本xrsync.sh传输脚本
  6. [转载]Linux软件包及dpkg\apt等方法
  7. 安装linux mint后要做20件事
  8. 如何计算java程序运行花了多长时间。加时间戳。
  9. Delphi上机步骤
  10. kloxo增加了域名,怎么不能访问?如何重启web服务?