运算符重载

1.类的实现运算符函数–左调右参
L . operator# (R)

 Complex const operator+ ( Complex const &rhs) const
 {
     return Complex (m_r + rhs.m_r, m_i + rhs.m_i);
 }

2.全局中重载运算符函数–左一右二,返回匿名类型。
L ::operator# ( L , R )

Complex const operator- (Complex const &lhs, Complex const &rhs)
{
    return Complex (lhs.m_r - rhs.m_r, rhs.m_i - rhs.m_i);
}
Complex  c1(1,2), c2(3,4);
(c1 + c2).show(); // c1.operator+ (c2)
(c2 - c1).show(); // ::operator-(c2, c1);

也可以将外部运算符重载作为 友元 函数 在类中声明。

friend Complex& operator-= (Complex &lhs, Complex const &rhs)
{
     lhs.m_r -= rhs.m_r;
     lhs.m_i -= rhs.m_i;
     return lhs;
}
friend istream &operator>> (istream &lhs, Complex &rhs)
{
    return lhs >> rhs.m_r >> rhs.m_i;
}
friend ostream &operator<< (ostream &lhs, Complex const &rhs)
{
    return lhs << rhs.m_r << '+' << rhs.m_i << 'i';
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值