0010:返回什么才好呢
题面
描述
程序填空,使其按要求输出
#include <iostream>
using namespace std;
class A {
public:
int val;
A(int
// 在此处补充你的代码
};
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;
}
思路
首先他直接输出 123 123 123是因为他声明 A a ; A\quad a; Aa;的时候进行了初始化。
其次它每次调用 a . G e t O b j ( ) a.GetObj() a.GetObj()都可以被成功赋值,那么他返回的是引用。
因为只有引用可以被修改,如果返回的不是引用那么只是个临时的对象
注意要学习学习this
指针,可以直接百度一下。
#include <iostream>
using namespace std;
class A {
public:
int val;
A(int n=123) {//缺省的初始化
val = n;
}
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;
}