北大程序设计与算法(三)测验题汇总(2020春季)
描述
程序填空,使其按要求输出
#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;
}
输入
多组数据,每组一行,是整数 m 和 n
输出
先输出一行:
123
然后,对每组数据,输出两行,第一行是m,第二行是n
样例输入
2 3
4 5
样例输出
123
2
3
4
5
来源
Guo Wei
分析
A a;
cout << a.val << endl;
需要输出123,那么定义构造函数的时候可以默认值
A(int i = 123):val(i){ }
这样子不仅可以解决先输出123,还可以额外功能赋值;
a.GetObj() = m;
这个需要我们定义GetObj()
函数,那么由于m是整型数值,那么我们采用的GetObj()
的返回值有两种方式:
一种是将GetObj()的返回值设为类的对象,那么m尽管是整形数据,
但是他会创建一个临时对象,赋值给`GetObj()`的返回值.
还有一种是将返回值设为整型数据;
解
class A {
public:
int val;
A(int i = 123):val(i){ }
A &GetObj(){return *this;}
};