标签:char c++类 多少 变量声明 ret ++ test 编译器 argc
class A{
public:
A(int k) : j(k), i(j)
{
}
void show()
{
cout << this->i << endl;
cout << this->j << endl;
}
private:
int i;
int j;
};
void test()
{
A a(3);
a.show();
}
int main(int argc, char const *argv[])
{
test();
return 0;
}
这里很容易让人以为先用3对j进行初始化,然后j再对i进行初始化,那么i和j都是3。实施缺相反,初始化列表的初始化顺序与变量声明的顺序一致。也就是说,j先对i初始化,然后2再对j初始化。
故输出内容
0 // 这儿也不一定是0跟编译器有关。但一定不是3
3
标签:char c++类 多少 变量声明 ret ++ test 编译器 argc
原文地址:https://www.cnblogs.com/Hijack-you/p/12026314.html