Esto probablemente se haya preguntado antes en SO, pero no he podido encontrar una pregunta similar.¿Debo especificar también virtual en los métodos de subclases?
Considere la siguiente jerarquía de clases:
class BritneySpears
{
public:
virtual ~BritneySpears();
};
class Daughter1 : public BritneySpears
{
public:
virtual ~Daughter1(); // Virtual specifier
};
class Daughter2 : public BritneySpears
{
public:
~Daughter2(); // No virtual specifier
};
¿Hay una diferencia entre Daughter1
y Daughter2
clases?
¿Cuáles son las consecuencias de especificar/no especificar virtual
en un destructor/método de subclase?
Gracias.
Nota para los lectores: también eche un vistazo a la palabra clave ['override'] (http://stackoverflow.com/questions/13880205/override-in-c11) en C++ 11 que está estrechamente relacionada con ese tema. – ereOn