要求定义友元函数实现2个复数对象的加法运算。
提示:复数的加法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,则它们的和z3是 (a+bi)+(c+di)=(a+c)+(b+d)i.
解题思路 :这里用到了友元函数注意结合6.9 去看 分析友元函数和成员函数的区别。
#include <iostream>
using namespace std;
class complex
{
private:
double sb,xb;
public:
complex(double a=0,double b=0)
{
sb=a;xb=b;
}
friend complex add(complex &x,complex &y);
void Show()
{
cout<<"("<<sb<<","<<xb<<")"<<endl;
}
};
complex add(complex &x,complex &y)
{
complex z;
z.sb=y.sb+x.sb;
z.xb=y.xb+x.xb;
return z;
}
int main() //主函数
{
complex z1(1.5,2.8),z2(-2.3,3.4),z3; //声明复数类的对象
z3=add(z1,z2);//友元函数调用
cout<<"z3=";
z3.Show();
return 0;
}