virtual? überschreiben? oder beides? C ++ [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Ist das Schlüsselwort 'override' nur eine Prüfung für eine überschriebene virtuelle Methode? 5 Antworten

in den letzten Wochen nervt etwas mein Gehirn über virtuelles und überschreiben. Ich habe gelernt, dass Sie bei der Vererbung mit der virtuellen Funktion @ hinzufügen müssevirtual, um den Compiler über die Suche nach der richtigen Funktion zu informieren. Danach habe ich auch erfahren, dass es in c ++ 11 ein neues Schlüsselwort gibt - override. Jetzt bin ich ein bisschen verwirrt. Muss ich in meinem Programm sowohl virtuelle als auch überschriebene Schlüsselwörter verwenden, oder ist es besser, nur eines davon zu verwenden?

Um mich selbst zu erklären - Codebeispiele für das, was ich meine:

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 {}
};

Was ist die beste Methode?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage