您的位置:首页 > 其它

初始化列表中初始化顺序和它们在类中声明的顺序保持一致---读书笔记

2010-12-14 21:31 316 查看
随手写的程序:
class A
{
public:
A():a(b),b(1)
{
cout<<a<<endl ;
cout<<b<<endl ;
}
private:
int a,b;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a ;
system("pause");
return 0;
}


输出结果为:

a为一个极大负数,b为1

修改下代码:

class A
{
public:
A():a(b),b(1)
{
cout<<a<<endl ;
cout<<b<<endl ;
}
private:
int b,a;
};
int _tmain(int argc, _TCHAR* argv[])
{
A a ;
system("pause");
return 0;
}


输出结果为:

a为1,b为1

两段代码唯一不同在于:int a,b修改成了int b,a;也就是前者先执行a(b)再执行b(1),后者先执行b(1),再执行a(b)

请记住一条准则:初始化列表中初始化顺序和它们在类中声明的顺序保持一致
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐