簡體   English   中英

如何重載運算符 -= C++

[英]How to overload operator -= C++

我需要重載賦值/遞減運算符 (-=) 以便代碼

object -= int

按 rhs 上的值遞減object.life類成員。 這是我的代碼:

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

我如何在我的主要實現這個?

int main()
{ 
    Object o1;
    o1 -= 5; //DOESN'T WORK
}

有什么建議么? 謝謝

當你從一個對象中減去一個對象時,你正在重載這個案例,但你展示的例子是減去一個整數。 我想重載帶整數的運算符:

const Object& Object::operator-= (int x);

重載應該采用int ,而不是Object

Object& Object::operator -= (int amount);

或者,如果有意義,您可以編寫一個構造函數,它接受一個int以允許從intObject類型的隱式轉換。 該參數應該用於初始化life

你可以嘗試使用這個:-

const Object& Object::operator-= (int x)

因為重載應該采用int

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM