¿virtual? ¿anular? ¿o ambos? C ++ [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿La palabra clave 'anular' es solo una verificación de un método virtual anulado? 5 respuestasEn las últimas semanas, algo está molestando mi cerebro sobre virtual y anulación. He aprendido que cuando haces herencia con la función virtual tienes que agregarvirtual
para que el compilador sepa que busque la función correcta. Después aprendí también que en c ++ 11 hay una nueva palabra clave: anulación. Ahora estoy un poco confundido;¿Debo usar palabras clave virtuales y de anulación en mi programa, o es mejor usar solo una de ellas?
Para explicarme, ejemplos de código de lo que quiero decir:
class Base
{
public:
virtual void print() const = 0;
virtual void printthat() const = 0;
virtual void printit() const = 0;
};
class inhert : public Base
{
public:
// only virtual keyword for overriding.
virtual void print() const {}
// only override keyword for overriding.
void printthat() const override {}
// using both virtual and override keywords for overriding.
virtual void printit() const override {}
};
¿Cuál es el mejor método?