Effective C++ 学习笔记(10)
2011-08-03 14:28 Daniel Zheng 阅读(216) 评论(0) 编辑 收藏 举报初始化列表中的成员列出的顺序和它们在类中声明的顺序相同
class A
{
public:
A(int a):j(a),i(j*2)
{
cout<<"A constructor"<<endl;
}
void Get() const
{
cout<<"i="<<i<<endl<<"j="<<j<<endl;
}
private:
int i;
int j;
};
int main()
{
A a(10);
a.Get();
return 0;
}
执行结果:
i = -1717986920
j = 10
造成这种结果的原因是类的成员是按照它们在类里声明的顺序初始化的,和它们在成员初始化表中的顺序无关。在这里是先初始化i,再初始化j,所以i为未初始化的值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步