重载运算符号(友元)

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

原文地址:https://www.cnblogs.com/hzshisan/p/12571122.html