1. 程式人生 > >過載運算子號(友元)

過載運算子號(友元)

#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;
}