项目一利用友元函数完成运算符的重载

#include <iostream>

using namespace std;

class Complex
{
public:
	Complex(){real=0;imag=0;}
    Complex(double r,double i){real=r;imag=i;}
	friend Complex operator+(Complex &c1,Complex &c2);
	friend Complex operator-(Complex &c1,Complex &c2);
	friend Complex operator*(Complex &c1,Complex &c2);
	void display();
 private:
	double real;
	double imag;
};
 Complex operator+(Complex &c1,Complex &c2)
{
    Complex c;
    c.real=c1.real+c2.real;
    c.imag=c1.imag+c2.imag;
    return c;
}
Complex operator-(Complex &c1,Complex &c2)
{
    Complex c;
    c.real=c1.real-c2.real;
    c.imag=c1.imag-c2.imag;
    return c;
}
void Complex::display()
{
   cout<<"("<<real<<","<<imag<<"i"<<")"<<endl;
}
Complex operator*(Complex &c1,Complex &c2)
{
   Complex c3;
   c3.real=c1.real*c2.real-c1.imag*c2.imag;
   c3.imag=c1.imag*c2.real+c1.real*c2.imag;
   return c3;
}
int main()
{
	Complex c1(3,4),c2(5,-10),c3;
	cout<<"c1=";
	c1.display();
	cout<<"c2=";
	c2.display();
	c3=c1+c2;
	cout<<"c1+c2=";
	c3.display();
	c3=c1-c2;
	cout<<"c1-c2=";
	c3.display();
	c3=c1*c2;
	cout<<"c1*c2=";
	c3.display();
	return 0;
}


项目一利用友元函数完成运算符的重载_第1张图片

你可能感兴趣的:(项目一利用友元函数完成运算符的重载)