me gustaría algo de información sobre las mejores prácticas cuando se comparan los punteros en casos como este:C++: Comparación de los punteros de la base y clases derivadas
class Base {
};
class Derived
: public Base {
};
Derived* d = new Derived;
Base* b = dynamic_cast<Base*>(d);
// When comparing the two pointers should I cast them
// to the same type or does it not even matter?
bool theSame = b == d;
// Or, bool theSame = dynamic_cast<Derived*>(b) == d?
Otra apuesta segura sería usar 'static_cast' para convertir ambos en una base común. Siempre que, por supuesto, sepa la base común. De lo contrario: si un puntero es un tipo base del otro, el compilador realizará la conversión automáticamente. –