联系我们 - 广告服务
您的当前位置:官网首页 > 资讯 > 时局 >

C++类的组合和前向引用声明

来源: 编辑: 时间:2019-08-27
导读: 类的组合 c++类的组合和前向引用声明。类的组合描述的就是一个类内嵌其他类的对象作为成员的情况,它们之间的关系是一种包含与被包含的关系。当创建类的对象时,如果这......

类的组合

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

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

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

2.执行本类的构造函数

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

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

析构函数的调用顺序与构造函数的调用顺序相反。

如果一个类没有编写复制构造函数,编译会在必要时自动生成一个隐含的复制构造函数,这个隐含的函数会自动调用内嵌对象的复制构造函数,为各个内嵌对象初始化。

 

前向引用声明

前向引用声明,是在引用未定义之前,将该类的名字告诉编译器,使编译器知道那是一个类名。

在提供一个完整的类定义之前,不能定义该类的对象,也不能在内联成员函数中使用该类的对象。可以声明该类的对象引用或指针。

在使用前向引用声明时,只能使用被声明的符号,而不能涉及类的任何细节。

责任编辑:

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

上一篇:大数据的核心是大量数据的分析能力
下一篇:没有了

网友评论:

在“\templets\demo\comments.htm”原来的内容全部删除,插入第三方评论代码,如果不需要评论功能,删除comments.html里面的内容即可
推荐使用友言、多说、畅言(需备案后使用)等社会化评论插件

Copyright © 2018 博天堂918国际娱乐博天堂918国际娱乐-搏天堂918娱乐在线 All Rights Reserved Power by DedeCms
本站所有资讯来源于网络 如有侵权请联系QQ:9490489
Top