Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211040
  • 博文数量: 112
  • 博客积分: 275
  • 博客等级: 二等列兵
  • 技术积分: 565
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-20 10:52
文章分类

全部博文(112)

文章存档

2014年(3)

2013年(2)

2012年(64)

2011年(43)

分类:

2011-12-20 16:59:24

原文地址:C++构造函数初始化列表 作者:rongdajun

首先,构造函数初始化式是在构造函数的定义中指定的,而不是声明中指定

class A
{
public:
    A();
private:
    int a;
};
A::A():a(0){}


其次,不管构造函数是否有显示的初始化式,在执行构造函数的函数体前,必然会有类数据成员的初始化(类类型调用默认构造函数,内置类型则不被初始化)

class A
{
public:
    A();
private:
    string str;
    int a;
};
A::A()
{
    /*
    ..........
    在开始执行下面的代码前,str已经被初始化为""
    */
    str = "hello";
    a = 0;
}


另外,对于没有默认构造函数的类类型的成员、const或者引用类型的成员,需要显示的在构造函数初始化列表中进行初始化。

在成员初始化式中,成员被初始化的次序就是定义成员的顺序。
阅读(195) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~