Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5158
  • 博文数量: 4
  • 博客积分: 175
  • 博客等级: 入伍新兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-19 20:50
文章分类
文章存档

2010年(4)

我的朋友
最近访客

分类: C/C++

2010-10-30 21:07:12

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

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或者引用类型的成员,需要显示的在构造函数初始化列表中进行初始化。

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

chinaunix网友2010-10-31 19:05:47

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com