项目一利用友元函数完成运算符的重载
来源:互联网 发布:滚球软件 编辑:程序博客网 时间:2024/05/29 15:20
#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;}