가능한 중복 : C++에서
What’s the right way to overload operator== for a class hierarchy?평등 테스트
, 어떻게하면 파생 클래스가 의미있는 방식으로 기본 클래스 평등 시험을 대체 할 수 있습니다?
예를 들어 기본 클래스 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' (벌금)이거나,'A'와'B' 그리고'A'와'C'와'B'를 비교하기를 원하십니까? 'C '(의문의 여지)? – sbi
위 예제에서 두 개와 세 개를 비교하고 싶습니다. 그들은 모두 포인터입니다. – Imbue