Teste de igualdade para classes derivadas em C ++ [duplicado]
Duplicata Possível:
Qual é o caminho certo para sobrecarregar o operador == para uma hierarquia de classes?
Em C ++, como as classes derivadas podem substituir o teste de igualdade da classe base de uma maneira significativa?
Por exemplo, digamos que eu tenho uma classe base A. As classes B e C derivam de A. Agora, dado dois ponteiros para dois objetos A, posso testar se eles são iguais (incluindo dados de subclasse)?
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?
Existe uma maneira limpa de fazer isso? Qual minha melhor aposta?
Obrigado!