我畫問號和橫線的這幾行都怎么解釋?
第一個劃線的這句話的意思是
這樣,默認的初始化操作都放在默認構造函數里就行了,相當于先執行Class1(),再執行Class1(1)這樣的。這樣做可以減少代碼冗余。
前兩個問號是運算符重載的特殊語法,就是編輯自定義的運算符操作,第一個是==運算符的重載,在這里將寫上判斷兩個Card是否相等的自定義邏輯。第二個是!=運算符的重載,在這里將協商判斷兩個Card是否不相等的自定義邏輯。你可以把 operator ==作為一個整體,當做方法名就可以了。
第三個問號是對Object中的Equals方法的重載,這個方法用于判斷兩個Card是否相同,this就是當前的對象,比如
在這里的Equals調用中,card就是this。
這里使用了運算符重載里面的方法。
而最后一個劃線的,其實是因為重載了Equals之后,需要重載一下GetHashCode,這個方法是獲取Card的一個標識的,就像Hash碼一樣,所以是這樣的,這個13的意思,其實是因為撲克有4種花色,每種花色有13張,所以用花色代碼*13再加上卡片類型就可以唯一標識一張撲克了。
上一篇想讓她和我上同所學校