C++类的组合和前向引用
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处
本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105113067
类的组合和前向引用
- 类的组合
- 前向引用声明
类的组合
C++类的组合和前向引用声明。类的组合描述的就是一个类内嵌其他类的对象作为成员的情况,它们之间的关系是一种包含与被包含的关系。当创建类的对象时,如果这个类具有内嵌对象成员,那么各个内嵌对象将首先被自动创建。因此,在创建对象时既要对本类的基本类型数据成员进行初始化,又要对内嵌对象成员进行初始化。
在创建一个组合类的对象时,不仅它自身的构造函数的函数体将被执行,而且还将调用其内嵌对象的构造函数,这时构造函数的调用顺序如下:
1.调用内嵌对象的构造函数,调用顺序按照内嵌对象在组合类的定义中出现的次序。与在构造函数的初始化列表中出现的顺序无关。
2.执行本类的构造函数
如果有些内嵌对象没有出现在构造函数的初始化列表中,那么在第一步中,该内嵌对象的默认构造函数将被执行。
有些数据成员的初始化,必须在构造函数的初始化列表中进行。这些数据成员包括两类,一是那些没有默认构造函数的内嵌对象,因为这类对象的初始化时必须提供参数,另一类是引用类型的数据成员,因为引用类型变量必须在初始化时绑定引用的对象。如果一个类包括这两类成员,你们编译器不能够为这个类提供隐含的默认构造函数,这时必
C++类的组合和前向引用相关推荐
- python函数的返回值是返回引用吗_python-函数(上):函数返回值、函数调用、前向引用...
编程方法: 1.面向对象:类--class 2.面向过程:过程--def 3.函数式编程:函数--def #python中函数#函数的定义#打印一个佛祖镇楼 -> 一个功能点的解释 defpri ...
- 静态代码块、构造代码块、非法的前向引用
目录 类变量(静态变量)和静态代码块 类变量(静态变量)和构造代码块 static final变量引用 两个类关于final变量的引用 非法的前向引用(Illegal forward referenc ...
- 【C++ 语言】面向对象 ( 类定义 | 限制头文件引用次数 | 构造方法 | 析构方法 )
文章目录 类的定义 ( 头文件引用次数控制 ) 类的实现 ( 构造函数 | 析构函数 ) CMake 编译配置 类测试 ( 构造析构调用测试 ) 类的定义 ( 头文件引用次数控制 ) 类定义 , 类一 ...
- 为什么static成员的类型可以是类本身?又为什么非static成员被限定声明为其自身类对象的指针或引用?...
看到<C++ Primer>中的一句话,才想起分析一下这个问题:"static 数据成员的类型可以是该成员所属的类类型.非 static 成员被限定声明为其自身类对象的指针或引用 ...
- C++---类成员变量定义为引用
C++---类成员变量定义为引用 摘要:类成员变量是可以定义为引用类型的,但是我们需要注意一下用法 note1:在类中定义引用变量, 必须要在初始化列表中初始化该成员变量(const 类型数据成员也必 ...
- [整站源码]thinkphp家纺针织床上用品类网站模板+前后端源码
模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计.手工书写DIV+CSS,完美兼容IE7+.Firefox.Chrome.360浏览器等:主流浏览器:结构容易优化:多终端均可 ...
- 健身类小程序前后端源码
简介: 健身类小程序前后端源码 环境要求: PHP >= 7.0 (推荐7.2+) Laravel 5.6+ 安装步骤: 安装PHP环境(请自行百度) 将源码上传到 web 目录 参考 Lara ...
- [整站源码]thinkphp古筝古琴书画培训类网站模板+前后端源码
模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计.手工书写DIV+CSS,完美兼容IE7+.Firefox.Chrome.360浏览器等:主流浏览器:结构容易优化:多终端均可 ...
- 2019年北京设计类画室排名前十位(设计类)
2019年北京设计类画室排名前十位(设计类)
最新文章
- Weblogic基本概念整理
- 最全面的_Redis_基本操作总结
- android编程用真机模拟,android编程的广播,模拟器可接受,但真机不可接受。
- ylbtech-LanguageSamples-Arrays(数组)
- 大一新生开发的小工具火了!不一样的 Python 编程体验,还是可视化的那种
- (王道408考研数据结构)第五章树-第三节2:二叉树构造和重建
- 三条中线分的六个三角形_三角形中的边长和线段(下)
- CVPR学习(三):CVPR2019-各个方向
- Appium移动自动化测试-----(一)Appium介绍
- 8.修改、扩展、重写Magento代码
- Linux 宏定义之 offsetof 与 container_of(十九)
- 如何下载网页中的flash SWF文件
- 8279c语言编程,可编程键盘/显示接口芯片8279应用浅析
- html 播放ogg,HTML5中video 和 ogg
- 【PyTorch问题】Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU,but expected them...略
- hibernate 检索策略
- 2021年10月国产数据库排行榜:达梦反超OceanBase夺榜眼,TDSQL实现“四连增”,数据生态加速建设
- 2019大疆秋招面经(后台开发录用)
- 新科高德发布2009.03版电子眼升级数据
- 小强升职记 思维导图
热门文章
- 一个合格的web前端程序员要学会哪些技能?
- Java和HTML有什么区别?哪个更重要?
- 华为电视测试软件,华为智慧屏电视安装第三方软件,简单实测可行攻略
- php下载文件压缩包已经损坏或未知格式,这个压缩文件格式未知或者数据已经被损坏解决方法...
- 2p刷高恪魔改固件_Newifi3路由器试用高恪固件
- 计算机操作的功能是什么情况,计算机操作系统的主要功能是什么?
- 8.Hadoop的学习(Hadoop的配置--搭建完全分布式)
- 电气论文实现:对大规模用户负荷曲线进行聚类
- VTK:标量条形 Actor用法实战
- boost::polygon模块实现多边形间隔相关的测试程序