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;} }; 正如康拉德指出的那样,你需要一个构造函数.您还需要在运算符重载中明确执行添加. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |