您的位置:首页 > 编程语言 > C语言/C++

c++中关于初始化型参列表的一些问题

2014-09-09 19:52 288 查看
/*
1.成员是按照他们在类中出现的顺序进行初始化的,而不是按照他们在初始化列表出现的顺序初始化的!
一个好的习惯是,按照成员定义的顺序进行初始化。
2.数组成员在初始化型参列表中不正确
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

struct node{
int i, j;
int num[12];
//node(int x) : j(x), i(j){}//错误的初始化啊
/*
这里i的值是未定义的因为虽然j在初始化列表里面出现在i前面,但是i先于j定义,所以先初始化i,
而i由j初始化,此时j尚未初始化,所以导致i的值未定义, 然后才对 j 进行初始化。
*/
//node(): num[1](1), num[2](3){}//错误的书写
node(int x) : i(x), j(i){}
void out(){
cout<<i<<" "<<j<<endl;
}
};

int main(){
node a(4);
a.out();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: