carina_ssy 2016-09-22 08:08 采纳率: 100%
浏览 904
已采纳

c++运算符重载。。。。。。

class point
{
private:
int x,y;
public:
point operator +=(point &p);
};
point point::operator +=(point &p)
{
x+=p.x; //这里
y+=p.y;
return *this;
}

这里的x+=p.x;和y+=p.y; 怎么理解啊

  • 写回答

3条回答

  • leewers 2016-09-22 09:15
    关注

    其实操作符重载一般的原则是不改变该操作符原有的语义,因此比如a += b中,假设a和b都是int类型, += 操作符干的事情就是将b的值加到a上,也就相当于a = a + b; 那么将a, b换成point对象之后,对应的,+=操作符应该将b中所有的成员变量加到a中对应的成员变量上。代码中所写的point operator +=(point &p);其实是在 a += p;(其中a, p均为point类的实例)的时候进行调用的,x += p.x;和y += p.y其实就是把p的x值加到a的x值上,把p的y值加到a的y值上。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备