可能重複:
What’s the right way to overload operator== for a class hierarchy?相等測試在C派生類++
在C++中,怎樣才能派生類覆蓋了基類的平等測試以有意義的方式?
例如,假設我有一個基類A.類B和C從A.現在給定的兩個指針給兩個A的對象派生,我可以測試它們是否相等(包括任何亞類的數據)?
class A {
public: int data;
};
class B : public A {
public: float more_data; bool something_else;
};
class C : public A {
public: double more_data;
};
A* one = new B;
A* two = new B;
A* three = new C;
//How can I test if one, two, or three are equal
//including any derived class data?
有沒有乾淨的做法呢?我最好的選擇是什麼?
謝謝!
可能的重複:http://stackoverflow.com/questions/1691007/whats-the-right-way-to-overload-operator-for-a-class-hierarchy –
你想比較'T == T ',其中'T'可能是'A','B'或'C'(罰款),或者你想用'C'和'B'將'A'與'B'和'A'進行比較與'C'(可疑)? – sbi
在上面的例子中,我想比較一與二和三。他們都是A指針。 – Imbue