微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C ++如何在子类和超类中重载+ =

如何解决C ++如何在子类和超类中重载+ =

class Rectangle : public Shape {

protected:
    int width;
    int length;

public:
    Rectangle(const int pwidth,const int plength,const int px,const int py);
    Rectangle& operator+=(Rectangle& rhs){
        this->width +=  rhs.width;
        this->length+= rhs.length;
        this->getX() += rhs.getX();
        this->getY() += rhs.getY();
        return *this;
    }
};

我试图重载矩形类(子类)中的+ =运算符,当我尝试从形状类(超类)中获取x和y值时遇到一个问题,我的空闲状态告诉我表达式必须是可修改的左值我在做什么错?我的shape类中有一些getter和setter方法,它们很明显,而且它们都是int。

这些行上发生错误

this->getX() += rhs.getX();
this->getY() += rhs.getY();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。