关于运算符重载的问题

szj2006 szj2006 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
请问Complex operator+(const Complex &x)const与Complex operator+(const Complex x)const的区别


include<iostream.h>
class Complex
{
private:
double real;
double image;
public:
Complex(void):real(0),image(0)
{}
Complex(double rp):real(rp),image(0)
{}
Complex(double rp,double ip):real(rp),image(ip)
{}
~Complex()
{}

Complex operator+(const Complex &x)const;
Complex operator-(const Complex &x)const;
Complex operator*(const Complex &x)const;
Complex operator/(const Complex &x)const;
bool operator==(const Complex &x)const;
Complex& operator+=(const Complex &x);
void Print(void) const;
};


inline Complex Complex::operator+(const Complex &x) const
{
return Complex(real+x.real,image+x.image );
}


inline Complex Complex::operator-(const Complex &x) const
{
return Complex(real-x.real,image-x.image );
}

inline Complex Complex::operator*(const Complex &x) const
{
return Complex(real*x.real,image*x.image );
}

Complex Complex::operator/(const Complex &x)const
{
double m;
m=x.real*x.real+x.image*x.image;
return Complex((real*x.real+image*x.image)/m,(image*x.real-real*x.image)/m);
}

inline bool Complex::operator==(const Complex &x)const
{
return bool(real==x.real &&image==x.image);
}

Complex&Complex::operator+=(const Complex&x)
{
real+=x.real ;
image+=x.image ;
return *this;
}
void Complex::Print(void ) const
{
cout<<"("<<real<<","<<image<<"i)"<<endl;
}
...全文
评论 2
收藏 已收藏
分享
返回顶部
szj2006
C++ 语言 65,214 成员 250,514 内容