该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处
本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105113067

类的组合和前向引用

  • 类的组合
  • 前向引用声明

类的组合

C++类的组合和前向引用声明。类的组合描述的就是一个类内嵌其他类的对象作为成员的情况,它们之间的关系是一种包含与被包含的关系。当创建类的对象时,如果这个类具有内嵌对象成员,那么各个内嵌对象将首先被自动创建。因此,在创建对象时既要对本类的基本类型数据成员进行初始化,又要对内嵌对象成员进行初始化。

在创建一个组合类的对象时,不仅它自身的构造函数的函数体将被执行,而且还将调用其内嵌对象的构造函数,这时构造函数的调用顺序如下:

1.调用内嵌对象的构造函数,调用顺序按照内嵌对象在组合类的定义中出现的次序。与在构造函数的初始化列表中出现的顺序无关。

2.执行本类的构造函数

如果有些内嵌对象没有出现在构造函数的初始化列表中,那么在第一步中,该内嵌对象的默认构造函数将被执行。

有些数据成员的初始化,必须在构造函数的初始化列表中进行。这些数据成员包括两类,一是那些没有默认构造函数的内嵌对象,因为这类对象的初始化时必须提供参数,另一类是引用类型的数据成员,因为引用类型变量必须在初始化时绑定引用的对象。如果一个类包括这两类成员,你们编译器不能够为这个类提供隐含的默认构造函数,这时必

C++类的组合和前向引用相关推荐

  1. python函数的返回值是返回引用吗_python-函数(上):函数返回值、函数调用、前向引用...

    编程方法: 1.面向对象:类--class 2.面向过程:过程--def 3.函数式编程:函数--def #python中函数#函数的定义#打印一个佛祖镇楼 -> 一个功能点的解释 defpri ...

  2. 静态代码块、构造代码块、非法的前向引用

    目录 类变量(静态变量)和静态代码块 类变量(静态变量)和构造代码块 static final变量引用 两个类关于final变量的引用 非法的前向引用(Illegal forward referenc ...

  3. 【C++ 语言】面向对象 ( 类定义 | 限制头文件引用次数 | 构造方法 | 析构方法 )

    文章目录 类的定义 ( 头文件引用次数控制 ) 类的实现 ( 构造函数 | 析构函数 ) CMake 编译配置 类测试 ( 构造析构调用测试 ) 类的定义 ( 头文件引用次数控制 ) 类定义 , 类一 ...

  4. 为什么static成员的类型可以是类本身?又为什么非static成员被限定声明为其自身类对象的指针或引用?...

    看到<C++ Primer>中的一句话,才想起分析一下这个问题:"static 数据成员的类型可以是该成员所属的类类型.非 static 成员被限定声明为其自身类对象的指针或引用 ...

  5. C++---类成员变量定义为引用

    C++---类成员变量定义为引用 摘要:类成员变量是可以定义为引用类型的,但是我们需要注意一下用法 note1:在类中定义引用变量, 必须要在初始化列表中初始化该成员变量(const 类型数据成员也必 ...

  6. [整站源码]thinkphp家纺针织床上用品类网站模板+前后端源码

    模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计.手工书写DIV+CSS,完美兼容IE7+.Firefox.Chrome.360浏览器等:主流浏览器:结构容易优化:多终端均可 ...

  7. 健身类小程序前后端源码

    简介: 健身类小程序前后端源码 环境要求: PHP >= 7.0 (推荐7.2+) Laravel 5.6+ 安装步骤: 安装PHP环境(请自行百度) 将源码上传到 web 目录 参考 Lara ...

  8. [整站源码]thinkphp古筝古琴书画培训类网站模板+前后端源码

    模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计.手工书写DIV+CSS,完美兼容IE7+.Firefox.Chrome.360浏览器等:主流浏览器:结构容易优化:多终端均可 ...

  9. 2019年北京设计类画室排名前十位(设计类)

    2019年北京设计类画室排名前十位(设计类)

最新文章

  1. Weblogic基本概念整理
  2. 最全面的_Redis_基本操作总结
  3. android编程用真机模拟,android编程的广播,模拟器可接受,但真机不可接受。
  4. ylbtech-LanguageSamples-Arrays(数组)
  5. 大一新生开发的小工具火了!不一样的 Python 编程体验,还是可视化的那种
  6. (王道408考研数据结构)第五章树-第三节2:二叉树构造和重建
  7. 三条中线分的六个三角形_三角形中的边长和线段(下)
  8. CVPR学习(三):CVPR2019-各个方向
  9. Appium移动自动化测试-----(一)Appium介绍
  10. 8.修改、扩展、重写Magento代码
  11. Linux 宏定义之 offsetof 与 container_of(十九)
  12. 如何下载网页中的flash SWF文件
  13. 8279c语言编程,可编程键盘/显示接口芯片8279应用浅析
  14. html 播放ogg,HTML5中video 和 ogg
  15. 【PyTorch问题】Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU,but expected them...略
  16. hibernate 检索策略
  17. 2021年10月国产数据库排行榜:达梦反超OceanBase夺榜眼,TDSQL实现“四连增”,数据生态加速建设
  18. 2019大疆秋招面经(后台开发录用)
  19. 新科高德发布2009.03版电子眼升级数据
  20. 小强升职记 思维导图

热门文章

  1. 一个合格的web前端程序员要学会哪些技能?
  2. Java和HTML有什么区别?哪个更重要?
  3. 华为电视测试软件,华为智慧屏电视安装第三方软件,简单实测可行攻略
  4. php下载文件压缩包已经损坏或未知格式,这个压缩文件格式未知或者数据已经被损坏解决方法...
  5. 2p刷高恪魔改固件_Newifi3路由器试用高恪固件
  6. 计算机操作的功能是什么情况,计算机操作系统的主要功能是什么?
  7. 8.Hadoop的学习(Hadoop的配置--搭建完全分布式)
  8. 电气论文实现:对大规模用户负荷曲线进行聚类
  9. VTK:标量条形 Actor用法实战
  10. boost::polygon模块实现多边形间隔相关的测试程序