友元函数实现复数中的运算符重载
来源:互联网 发布:弗洛伊德算法矩阵 编辑:程序博客网 时间: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