设为首页 加入收藏

TOP

C++类的组合和前向引用声明
2017-05-27 17:35:25 】 浏览:2206
Tags:组合 引用 声明

类的组合

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

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

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

  2.执行本类的构造函数

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

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

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

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

 

前向引用声明

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

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

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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇G: 矩形类中运算符重载【C++】 下一篇C++ cin和scanf

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目