友元函数实现复数中的运算符重载

来源:互联网 发布:弗洛伊德算法矩阵 编辑:程序博客网 时间:2024/05/17 22:35
//02.* Copyright (c) 2013, 烟台大学计算机学院//04.* 作    者: 马德鹏//05.* 完成日期:2014 年 5 月17 日//06.* 版 本 号:v1.0//07.*#include <iostream>#include <cmath>using namespace std;class Complex{public:    Complex(){real=0;imag=0;}    Complex(double r,double i){real=r; imag=i;}    Complex operator+(Complex &c2);    Complex operator-(Complex &c2);    Complex operator*(Complex &c2);    Complex operator/(Complex &c2);    friend void display(Complex &);private:    double real;    double imag;};//下面定义成员函数Complex Complex::operator+(Complex &c2){    Complex c;    c.real=real+c2.real;    c.imag=imag+c2.imag;    return c;}Complex Complex::operator-(Complex &c2){    Complex c;    c.real=real-c2.real;    c.imag=imag-c2.imag;    return c;}Complex Complex::operator*(Complex &c2){    Complex c;    c.real=real*c2.real;    c.imag=imag*c2.imag;    return c;}Complex Complex::operator/(Complex &c2){    Complex c;    c.real=real/c2.real;    c.imag=imag/c2.imag;    return c;}  void display(Complex &t)  {      cout<<"("<<t.real<<","<<t.imag<<")"<<endl;  }//下面定义用于测试的main()函数int main(){    Complex c1(3,4),c3(5,-10),c4;    cout<<"c1=";    display(c1);    cout<<"c3=";    display(c4);    c4=c1+c3;    cout<<"c1+c3=";    display(c4);    c4=c1-c3;    cout<<"c1-c3=";    display(c4);    c3=c1*c3;    cout<<"c1*c2=";    display(c4);    c4=c1/c3;    cout<<"c1/c3=";    display(c4);    return 0;}


                                             
0 0