请编写函数实现并测试运算符重载的方法。 要求:将运算符重载为非成员函数,实现实数加复数、实数减法复数的功能;
时间: 2024-04-30 18:17:50 浏览: 133
运算符重载函数
好的,我来给您提供一个示例代码:
```cpp
#include <iostream>
using namespace std;
class Complex {
private:
double real;
double imag;
public:
Complex(double r = 0, double i = 0) : real(r), imag(i) {}
friend Complex operator+(double r, const Complex& c){
return Complex(r + c.real, c.imag);
}
friend Complex operator-(double r, const Complex& c){
return Complex(r - c.real, -c.imag);
}
void display() const {
cout << "(" << real << ", " << imag << "i)" << endl;
}
};
int main()
{
Complex c1(2, 3);
double r = 1.5;
Complex c2 = r + c1;
c2.display(); // (3.5, 3i)
Complex c3 = r - c1;
c3.display(); // (-0.5, -3i)
return 0;
}
```
在这个示例代码中,我们定义了一个复数类 `Complex` ,并重载了加法运算符和减法运算符。其中,加法和减法运算符都是以实数为左操作数,以复数为右操作数的非成员函数。
在 `main` 函数中,我们创建了一个复数对象 `c1` 和一个实数变量 `r` ,然后分别测试了加法和减法运算符的重载功能。
希望这个示例能够对您有所帮助!
阅读全文