天天看點

重載運算符号(友元)

#include

using namespace std;

class complex //複數類聲明

{

private:

double sb;//實數部

double xb;//虛數部

public:

complex(double r=0,double i=0)//直接指派可以多用于有參和無參的函數

{

sb=r;xb=i;

}

friend complex operator+(complex &a,complex &b);//利用友元的時候就要把參與運算的所有類都定義并添加引用符号&

void Show()

{

cout<<"("<<sb<<","<<xb<<")"<<endl;

}

};

complex operator+(complex &a,complex &b)//這裡的operator就不是複數類中的了

{

complex x;

x.sb=a.sb+b.sb;

x.xb=a.xb+b.xb;

return x;

}

int main() //主函數

{

complex z1(1.5,2.8),z2(-2.3,3.4),z3; //聲明複數類的對象

z3=z1+z2;//+運算符被重載

cout<<“z3=”;

z3.Show();

return 0;

}

繼續閱讀