c++编程练习 015:看上去好坑的运算符重载
程序员文章站
2022-03-26 16:02:50
...
北大程序设计与算法(三)测验题汇总(2020春季)
描述
程序填空
#include <iostream>
using namespace std;
class MyInt
{
int nVal;
public:
MyInt( int n) { nVal = n ;}
// 在此处补充你的代码
};
int Inc(int n) {
return n + 1;
}
int main () {
int n;
while(cin >>n) {
MyInt objInt(n);
objInt-2-1-3;
cout << Inc(objInt);
cout <<",";
objInt-2-1;
cout << Inc(objInt) << endl;
}
return 0;
}
输入
多组数据,每组一行,整数n
输出
对每组数据,输出一行,包括两个整数, n-5和n - 8
样例输入
20
30
样例输出
15,12
25,22
来源
Guo Wei
分析
objInt-2-1-3;
可知减号两边类型不一致,那么容易想到重载,即
MyInt &operator-(int i){
nVal -= i;
return *this;
}
int Inc(int n) {
return n + 1;
}
cout << Inc(objInt);
由上可知,传入的objInt被强制转化成整型,那么重载int()
即可,
operator int(){return nVal;}
执行效果