1

コードが

object -= int

object.liferhs の値だけクラス メンバーを減らします。これが私のコードです:

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
}

助言がありますか?ありがとう

4

3 に答える 3

7

オブジェクトからオブジェクトを減算するとケースがオーバーロードされますが、表示される例は整数を減算しています。整数を取る演算子をオーバーロードしたい:

const Object& Object::operator-= (int x);
于 2012-11-27T17:14:33.677 に答える
3

オーバーロードはintではなくを取る必要がありObjectます:

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

または、代わりに、意味がある場合は、から型への暗黙的な変換intを許可するコンストラクターを作成できます。引数は、初期化に使用する必要があります。intObjectlife

于 2012-11-27T17:14:41.857 に答える
0

あなたはこれを試すことができます: -

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

過負荷がかかるのでint

于 2012-11-27T17:15:24.677 に答える