[英]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
以允許從int
到Object
類型的隱式轉換。 該參數應該用於初始化life
。
你可以嘗試使用這個:-
const Object& Object::operator-= (int x)
因為重載應該采用int
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.