设为首页 加入收藏

TOP

3.5.9 构造函数初始化程序
2013-10-07 15:31:14 来源: 作者: 【 】 浏览:74
Tags:3.5.9 构造 函数 初始 程序

3.5.9   构造函数初始化程序

在如下类定义中:

 

类C的构造函数通过赋值语句对该类的两个数据成员进行初始化。但由于数据成员c是const类型的,因此对其做出的赋值操作是非法的。只要为构造函数添加一个初始化列表(constructor initializer,官方名称为ctor initializer)就可以解决这个问题。

例3-31

以下语句

 

列举了构造函数初始化列表的使用办法。在本例中,我们采用这种办法对const类型的数据成员c进行了初始化。

构造函数的初始化段(initialization section)由一个冒号:开始,紧跟在冒号之后的是需要进行初始化的数据成员,然后是由一对小括号括起来的初始值。在本例中,我们将数字0用一对小括号括起来,将其作为数据成员c的初值。这也是初始化const类型数据成员的惟一方法。

初始化列表仅在构造函数中有效,不能用于其他函数。构造函数的初始化列表可以初始化任何数据成员,但const类型数据成员不能用其他办法进行初始化。

例3-32

 

本例对例3-31进行了改动,将const数据成员c和非const数据成员x都放到初始化段当中。请注意数据成员的初始化顺序完全取决于它们在类当中声明的次序,与它们在初始化段中出现的次序无关。本例中,由于数据成员x在c之前声明,因此尽管x在初始化段中比c后出现,但x的初始化仍然先于c。

由于初始化列表已经完成了所有工作,我们看到的默认构造函数当中没有任何代码,这种编程(www.cppentry.com)风格是常见的。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.5 构造函数与析构函数 下一篇3.5.2 对象数组与默认构造函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python中文网 - 人生 (2025-12-24 18:49:47)
·【整整648集】这绝对 (2025-12-24 18:49:44)
·Python超详细一条龙 (2025-12-24 18:49:42)
·【超详细】JDK 下载 (2025-12-24 18:19:32)
·Java_百度百科 (2025-12-24 18:19:29)