015:看上去好坑的运算符重载
程序员文章站
2022-03-14 09:58:27
...
确实坑。
分析:
1. MyInt objInt(n); //构造函数,已定义
2. objInt-2-1-3; //需重载"-",补。
3. cout << Inc(objInt); //已定义Inc函数, 坑:1.将Inc定义为友元(错)。2.需要重载"()"(错)。3.重载Inc函数(yes。。。)
以下是完整代码:
#include <iostream>
using namespace std;
class MyInt {
int nVal;
public:
MyInt(int n) { nVal = n; }
// 在此处补充你的代码
MyInt &operator-(int i) {
nVal -= i;
return *this;
}
friend int Inc(const MyInt & my){
return my.nVal + 1;
}
};
int Inc(int n) {
return n + 1;
}
int main () {
int n;
while(cin >>n) {
MyInt objInt(n);
objInt-2-1-3; //需重载"-"
cout << Inc(objInt);
//已定义Inc函数,坑:1.将Inc定义为友元(错)。2.需要重载"()"(错)。3.重载Inc函数()
cout <<",";
objInt-2-1;
cout << Inc(objInt) << endl;
}
return 0;
}
上一篇: 018:别叫,这个大整数已经很简化了!
下一篇: 019:全面的MyString