【发布时间】:2016-04-09 18:22:15
【问题描述】:
我正在尝试这个构造函数代码,但对它的工作原理感到困惑..
#include<iostream>
using namespace std;
class XYZ{
int a,b;
public:
XYZ(int i, int j):a(i), b(a*j){}
void show(){
cout<<a<<"\t"<<b<<"\n";
}
};
int main(){
XYZ X(2,3);
X.show();
return 0;
}
它给出了预期的结果,但是,
#include<iostream>
using namespace std;
class XYZ{
int b,a;
public:
XYZ(int i, int j):a(i), b(a*j){}
void show(){
cout<<a<<"\t"<<b<<"\n";
}
};
int main(){
XYZ X(2,3);
X.show();
return 0;
}
给出意想不到的结果。
唯一的区别是int a,b 和int b,a
XYZ(int i, int j):a(i), b(a*j){} 究竟是如何工作的?
【问题讨论】:
-
每个问题一个问题。我已经告诉过你好几次了。另外,在将近四年和 20 个问题之后,您能否考虑养成正确格式化您的帖子的习惯?句号,大写字母...谢谢。
-
使用
-Wall来捕捉这个(-Wreorder是必需的标志,更准确地说,它包含在-Wall中)。
标签: c++ constructor initialization