用重载操作符的方式实现,不能修改原来的main函数
时间: 2024-05-13 18:19:18 浏览: 14
好的,我来为你演示一下如何用重载操作符的方式实现。
假设你需要实现一个名为`MyInt`的类,这个类可以将一个整数加上一个常数,常数可以是整数或浮点数。现在,你需要重载加号操作符,使得可以直接使用`MyInt`类进行加法运算。
下面是实现的代码:
```cpp
#include <iostream>
using namespace std;
class MyInt {
public:
MyInt(int i) : value(i) {}
int getValue() const { return value; }
MyInt operator+(int x) {
return MyInt(value + x);
}
MyInt operator+(double x) {
return MyInt(value + static_cast<int>(x));
}
private:
int value;
};
int main() {
MyInt a(10);
MyInt b = a + 5; // 加上整数常数
MyInt c = a + 3.5; // 加上浮点数常数
cout << "a = " << a.getValue() << endl;
cout << "b = " << b.getValue() << endl;
cout << "c = " << c.getValue() << endl;
return 0;
}
```
在上面的代码中,我们通过重载加号操作符,实现了将`MyInt`类对象加上整数或浮点数常数的功能。在`operator+`函数中,我们使用了类型转换函数`static_cast`将浮点数转换为整数,然后与整数相加,最终返回一个新的`MyInt`对象。
在`main`函数中,我们定义了三个`MyInt`对象,分别是`a`、`b`和`c`。然后通过`a + 5`和`a + 3.5`的方式,分别将整数常数和浮点数常数加到`a`上,得到了`b`和`c`。
最后,我们通过`getValue`函数获取了`a`、`b`和`c`的值,并输出到屏幕上。
希望这个例子可以帮助你理解如何用重载操作符的方式实现。