#include<iostream>
using namespace std;
class Complex
{
public:
Complex(); //默认构造函数
Complex(double, double); //定义带有参数的构造函数
friend Complex operator+(Complex& ,Complex &); //友元运算符重载函数
void display(); //声明输出函数
private:
double real; //实部
double imag; //虚部
};
Complex::Complex()
{
real = 0;
imag = 0;
}
Complex::Complex(double r, double i)
{
real = r;
imag = i;
}
Complex operator+(Complex& c2,Complex &c1) { //定义全局函数
Complex c;
c.real = c2.real + c1.real;
c.imag = c2.imag + c1.imag;
return c;
}
/* 这是不使用对运算符重载的方法 实现2个复数的相加
Complex Complex::Complex_add(Complex& c2)
{
Complex c;
c.real = c2.real + this->real;
c.imag = c2.imag + this->imag;
return c ;
}
*/
//Complex Complex::operator+(Complex& c2) //使用运算符重载 对+ 进行实现2个复数的相加
//{
// Complex c;
// c.real = c2.real + this->real;
// c.imag = c2.imag + this->imag;
// return c;
//
//}
void Complex::display()
{
cout << "(" << real << "," << imag << "i" << ")"<<endl;
}
int main()
{
Complex c1(3, 4), c2(5, -10), c3;
c3 = c1 + c2;
cout << "c1 = ";
c1.display();
cout << "c2 = ";
c2.display();
cout << "c1+c2=";
c3.display();
return 0;
}