我有一個基類實現基類比較的正確方法是什麼?
class Animal
與純虛函數,和一組派生類
class Monkey : public Animal
class Snake : public Animal
我想實現一個比較操作的,這樣,如果我遇到兩個指針動物在我的代碼
Animal* animal1
Animal* animal2
我可以將它們相互比較。如果animal1和animal2具有不同的派生類,則比較應該產生錯誤。如果它們具有相同的派生類,則應返回比較運算符的輸出。
有人可以指出我實現這個好方法嗎?
是的,與運營商==超載更好。 – imaginaryboy 2010-09-18 22:09:41
雖然小錯誤,需要是'const monkey * p = dynamic_cast(&other)'和'return * this == * p' ...引用不能轉換爲'bool'。 –
imaginaryboy
2010-09-18 22:22:35
@imaginaryboy:是的,我解決了一個更好的解決方案。 – Puppy 2010-09-18 22:28:24