定义complex类,该类可以对所谓的负数进行操作,实现一下功能,(1)重载运算符<<(2)分别使用类函数和全局函数重载复数的+
时间: 2024-01-22 18:19:15 浏览: 146
然后使用如下的主函数进行测试-C语言运算符重载
以下是一个实现complex类的示例,其中重载了运算符<<和+:
```c++
#include <iostream>
using namespace std;
class complex {
private:
double real;
double imag;
public:
// 构造函数
complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
// 重载运算符<<,输出复数
friend ostream& operator<<(ostream& os, const complex& c) {
os << c.real << "+" << c.imag << "i";
return os;
}
// 重载运算符+,实现复数相加
complex operator+(const complex& c) {
complex res;
res.real = real + c.real;
res.imag = imag + c.imag;
return res;
}
};
int main() {
complex c1(1, 2);
complex c2(3, 4);
// 使用全局函数重载运算符+
complex c3 = c1 + c2;
// 使用类函数重载运算符+
complex c4 = c1.operator+(c2);
cout << "c1=" << c1 << endl;
cout << "c2=" << c2 << endl;
cout << "c3=" << c3 << endl;
cout << "c4=" << c4 << endl;
return 0;
}
```
以上程序输出:
```
c1=1+2i
c2=3+4i
c3=4+6i
c4=4+6i
```
其中 `operator<<` 是全局函数,`operator+` 是类函数,两者都可以重载运算符。
阅读全文