C 奧特曼打怪獸之運算子過載(系列6)

2021-10-07 14:45:49 字數 1676 閱讀 5247

題目描述在奧特曼打怪獸的過程中,會有各種魔法袋,奧特曼可以撿起這些魔法袋,對自己施加不同的魔法。魔法袋的種類和功能描述如下:

1. 「好事成雙」魔法袋(過載+

+):使自己的等級翻倍,生命值恢復滿血,為翻倍後等級的10倍,攻擊力提公升為翻倍後等級的3倍,經驗和錢財翻倍。

2. 「禍不單行」魔法袋(過載– –):使自己的生命值、攻擊力、經驗和錢財縮減為原來的一半。

3. 「吸星**」魔法袋(過載

4. 「有緣相會」魔法袋(過載 ==):所當前所打怪獸等級等於奧特曼,則奧特曼的生命值、攻擊力、經驗和錢財將增加怪獸相應屬性的取值。

以成員函式方式為奧特曼過載以上方法。

另外以友元方式為奧特曼過載運算子<

重新組織和修改前面實驗的**,利用運算子過載實現以下內容,使得下面的main函式能正確執行並輸出相關資訊。

int main()

;class

monster

;ultraman::

ultraman

(int a)

ultraman &ultraman::

operator++(

void

)ultraman &ultraman::

operator--(

void

)bool ultraman::

operator

<

(monster& viga)

else

return0;

}bool ultraman::

operator

==(monster& viga)

else

return0;

}ostream &

operator

<<

(ostream & os,

const ultraman &tiga)

monster::

monster

(int a)

int monster::

get_rank()

int monster::

get_hp()

int monster::

get_damage()

int monster::

get_exp()

int monster::

get_money()

void monster::

display()

intmain()

else

if(c==

'b')

else

if(c==

'x')

else

if(c==

'y')

else cout<<

"請重新輸入魔法袋型別"

<

} cout<

}return0;

}

成員運算子過載函式在類中的宣告格式為:

class x

;成員運算子過載函式在類外定義的格式為:

《返回資料型別》 x:: operator 《運算子》 (《參數列》)

C 系列 20 運算子過載

然而,單純的使用系統自帶的 來進行來兩個物件的相等判斷,是無法通過編譯的。在此我們可以採用建立乙個判斷相等函式用以解決兩個物件的相等判斷 class date date const date d bool isequal const date d1 private int year int mont...

C 系列 21 運算子過載

賦值運算子過載即便不寫,編譯器也會預設自動生成,完成正常賦值。class date date const date d private int year int month int day int main class date date const date d void operator con...

C 運算子過載之過載單目運算子

單目運算子只有乙個運算元,但是其過載方法類似於雙目運算子,在這裡以過載單目運算子 為例,介紹單目運算子的過載 注意 和 運算子有兩種使用方式,前置自增運算子和後置自增運算子,它們的作用是不一樣的,為了區分他們,c 約定,在自增 自減 運算子過載函式中,增加乙個int型別的形參,就是後置自增 自減 運...