C++ 运算符重载 002:看上去好坑的运算符重载
程序员文章站
2024-03-17 18:58:40
...
002:看上去好坑的运算符重载
描述
程序填空
#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
1.可以减去int,故需要重载-
2.可以作为int类型,故需要重载类型转换运算符
MyInt &operator -( int n) {nVal -=n; return *this;} //返回-号作用的对象
operator int() { return nVal;} //返回nVal值
#include <iostream>
using namespace std;
class MyInt
{
int nVal;
public:
MyInt( int n) { nVal = n ;}
// 在此处补充你的代码
MyInt& operator -(int n){ //返回引用,可以作为左边继续减
nVal-=n;
return *this;
}
operator int(){ return nVal;
}
// -号运算符
//-1=-1,-2=-2 ,-3=-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);
cout <<",";
objInt-2-1; //
cout << Inc(objInt) << endl;
}
return 0;
}
上一篇: Qt中将输入的字符串与十六进制相互转换
下一篇: STL系列(二) 二分查找