如何重载 - = c ++

jsa*_*san 1 c++ operator-overloading

我需要重载赋值/减量运算符( - =)以便代码

object -= int
Run Code Online (Sandbox Code Playgroud)

通过rhs上的值减少object.life.这是我的代码:

const Object& Object::operator -= (const Object& obj)
{ 
    if (life == obj.life)`
    {   
        this->life -= obj.life;
        return *this;
    }
} 
Run Code Online (Sandbox Code Playgroud)

我如何在我的主要实现这个?

int main()
{ 
    Object o1;
    o1 -= 5; //DOESNT WORK
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?谢谢

Xym*_*ech 7

当您从对象中减去对象时,您正在重载该情况,但您显示的示例是减去整数.我想重载带整数的运算符:

const Object& Object::operator-= (int x);
Run Code Online (Sandbox Code Playgroud)