加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C运算符和参数

发布时间:2020-12-16 10:54:05 所属栏目:百科 来源:网络整理
导读:假设我有一个课程点: class Point { int x,y;public: Point operator+=(const Point p) { x=p.x; y=p.y; return *this; }}; 为什么我不能这样称呼它: Point p1;p1 += Point(10,10); 有没有办法做到这一点,同时仍然有参考作为参数? 解决方法 这是您需要的
假设我有一个课程点:

class Point {
    int x,y;
public:
    Point& operator+=(const Point &p) { x=p.x; y=p.y; return *this; }
};

为什么我不能这样称呼它:

Point p1;
p1 += Point(10,10);

有没有办法做到这一点,同时仍然有参考作为参数?

解决方法

这是您需要的代码:

class Point {
    int x,y;
public:
    Point(int x=0,int y=0) : x(x),y(y) {}
    Point& operator+=(const Point&p) {x+=p.x;y+=p.y;return *this;}
};

正如康拉德指出的那样,你需要一个构造函数.您还需要在运算符重载中明确执行添加.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读