输入
多组数据,每组一行,是整数 m 和 n
输出
先输出一行:
123
然后,对每组数据,输出两行,第一行是m,第二行是n
样例输入
2 3
4 5
样例输出
123
2
3
4
5
#include <iostream>
using namespace std;
class A {
public:
int val;
A(int m)
{
val=m;
}
A(){
val=123;
}
A& GetObj()
{
return *this;
}
// 在此处补充你的代码
};
int main()
{
int m,n;
A a;
cout << a.val << endl;
while(cin >> m >> n) {
a.GetObj() = m;
cout << a.val << endl;
a.GetObj() = A(n);
cout << a.val<< endl;
}
return 0;
}
总结
这道题主要是疑惑在了GetObj那个地方,开始写的是A作为返回值 后来看了其他人的题解发现应该是A&
如果A是返回值类型,那么返回的时候会调用复制构造函数,并不会影响到a这个对象的值,实际上改变的是创造出来的变量。
而如果是A&,则返回的是a的引用,那么修改它也相当于修改了a。