que tienen una clase base¿Cuál es la forma correcta de implementar la comparación para una clase base?
class Animal
con funciones virtuales puras, y un conjunto de clases derivadas
class Monkey : public Animal
class Snake : public Animal
Quiero poner en práctica una operación de comparación de modo que, si me encuentro con dos punteros a los animales en mi código
Animal* animal1
Animal* animal2
Puedo compararlos entre sí. La comparación debería dar como resultado falso, si animal1 y animal2 son de diferentes clases derivadas. Si son de la misma clase derivada, se debe devolver la salida del operador de comparación.
¿Alguien me puede indicar una buena forma de implementar esto?
Sí, mejor con la sobrecarga del operador ==. – imaginaryboy
Error menor, necesita ser 'const monkey * p = dynamic_cast (& other)' y 'return * this == * p' ... las referencias no son convertibles a' bool'. –
imaginaryboy
@imaginaryboy: Sí, lo arreglé para una solución mucho mejor. – Puppy