1、【例 4.8】定义复数 Complex 类,使用友元函数,完成复数的加法、减法、乘法运算,以及对复数的输出。#includeclass Complexdouble real;double image;public:Complex(double r=0,double i=0)real=r; image=i;friend void inputcomplex(Complex friend Complex addcomplex(Complex c1,Complex c2);friend Complex subcomplex(Complex c1,Complex c2);friend Complex m
2、ulcomplex(Complex c1,Complex c2);friend void outputcomplex(Complex comp);void inputcomplex(Complex Complex addcomplex(Complex c1,Complex c2)Complex c;c.real=c1.real+c2.real;c.image=c1.image+c2.image;return c;Complex subcomplex(Complex c1,Complex c2)Complex c;c.real=c1.real-c2.real;c.image=c1.image-c
3、2.image;return c;Complex mulcomplex(Complex c1,Complex c2)Complex c;c.real=c1.real*c2.real-c1.image*c2.image;c.image=c1.real*c2.image+c1.image*c2.real;return c;void outputcomplex(Complex comp)cout“(“comp.real“,“comp.image“)“;void main()Complex c1,c2,result;cout“请输入第一个复数的实部和虚部:“endl;inputcomplex(c1);
4、cout“请输入第二个复数的实部和虚部:“endl;inputcomplex(c2);result=addcomplex(c1,c2);outputcomplex(c1);cout“+“;outputcomplex(c2);cout“=“;outputcomplex(result);cout“n-“endl;result=subcomplex(c1,c2);outputcomplex(c1);cout“-“;outputcomplex(c2);cout“=“;outputcomplex(result);cout“n-“endl;result=mulcomplex(c1,c2);outputcomplex(c1);cout“*“;outputcomplex(c2);cout“=“;outputcomplex(result);coutendl;程序的运行结果为:请输入第一个复数的实部和虚部:1 2请输入第二个复数的实部和虚部:3 4(1,2)+(3,4)=(4,6)-(1,2)-(3,4)=(-2,-2)-(1,2)*(3,4)=(-5,10)说明:此例中,我们通过友元函数实现了复数的加法、减法、乘法运算,以及复数的输入和输出,复数的除法运算读者可以自己实现。当然,我们可以考虑能不能用简单的+、-、*、/运算符来实现复数的四则运算,这是我们在第 6 章要讲到的运算符重载。