¿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 respuestas

En 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?

Respuestas a la pregunta(1)

Su respuesta a la pregunta