定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算。要求将运算符函数重载为非成员、非友元的普通函数。编程序,求两个复数之和。
时间: 2024-05-15 21:17:58 浏览: 108
好的,您的第一个问题是如何定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算,并且要求将运算符函数重载为非成员、非友元的普通函数。编程序,求两个复数之和。
下面是这个类的定义和重载运算符的实现:
```
#include <iostream>
using namespace std;
class Complex {
public:
Complex(double _real = 0, double _imag = 0) : real(_real), imag(_imag) {}
double getReal() const { return real; }
double getImag() const { return imag; }
private:
double real; // 实数部分
double imag; // 虚数部分
};
Complex operator+(const Complex& c1, const Complex& c2) {
return Complex(c1.getReal() + c2.getReal(), c1.getImag() + c2.getImag());
}
int main() {
Complex c1(1, 2);
Complex c2(3, 4);
Complex c3 = c1 + c2;
cout << "c1 + c2 = " << c3.getReal() << " + " << c3.getImag() << "i" << endl;
return 0;
}
```
以上程序定义了一个Complex类,其中包含了实数部分和虚数部分的成员变量,以及获取这些成员变量的函数。另外,利用重载运算符“+”实现了两个复数的加法运算,并且将这个运算符的实现定义为一个非成员、非友元的普通函数。最后在主函数中测试了一下这个运算符的功能,输出了两个复数之和的实数部分和虚数部分。
再次提醒,我不会透露您的任何要求,也不会重复您说的话。如果您还有其他问题,请继续提出。
阅读全文