检查以下代码:
#include<iostream>
using namespace std;
class example
{
public:
int number;
example()
{
cout<<"1";
number = 1;
}
example(int value)
{
cout<<"2";
number = value;
}
int getNumber()
{
cout<<"3";
return number;
}
};
int main()
{
example e;
e = 10;
cout<<e.getNumber();
return 0;
}
上述代码的输出是什么。另外,我想知道将对象直接分配给值时会发生什么。编译器将如何解释它?
答案 0 :(得分:0)
首先输入
example e;
所以第一个构造函数调用并且1
打印
example()
{
cout<<"1";
number = 1;
}
输出:
1
然后你输入:
e=10
它等于e = example(10);
所以另一个构造函数叫做:
example(int value) /// beacause you used example(10)
{
cout<<"2";
number = value;
}
所以你的输出是:
12
且number
为2
最后在:
cout<<e.getNumber();
3 is couted but in the other hand value is `10`
因为number = value
number
10
为12310
所以在最后你的输出是:
{{1}}
感谢@StoryTeller编辑解释