Namensräume
Varianten
Aktionen

C++ Bezeichner mit besonderer Bedeutung: override (seit C++11)

Von cppreference.com
< cpp
 
 
C++ Sprache
Allgemeine Themen
Kontrollfluss
Bedingte Ausführungsaussagen
if
Iterationsanweisungen (Schleifen)
for
Bereichs-for (C++11)
Sprunganweisungen
Funktionen
Funktionsdeklaration
Lambda-Funktionsausdruck
inline-Spezifizierer
Dynamische Ausnahmespezifikationen (bis C++17*)
noexcept-Spezifizierer (C++11)
Ausnahmen
Namensräume
Typen
Spezifizierer
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Speicherdauer-Spezifizierer
Initialisierung
Ausdrücke
Alternative Darstellungen
Literale
Boolesch - Ganzzahl - Gleitkommazahl
Zeichen - String - nullptr (C++11)
Benutzerdefinierte (C++11)
Dienstprogramme
Attribute (C++11)
Typen
typedef-Deklaration
Typalias-Deklaration (C++11)
Umwandlungen
Speicherzuweisung
Klassen
Klassenspezifische Funktionseigenschaften
explicit (C++11)
static

Spezielle Member-Funktionen
Templates
Sonstiges
 
 

[bearbeiten] Verwendung

[bearbeiten] Beispiel

struct b
{
    void f0() {};
    void f1() {};
    virtual void f2() {};
    virtual void f3() {};
    virtual void f4() {};
    virtual void f5() {};
};
 
struct d : b
{
    void f0() {};                        // OK. Neither: b::f0 nor d::f0 are virtual.
    void f1() override {};               // Error: cannot override non-virtual b::f1.
    void f2() override {};               // OK. Member function d::f2 is virtual.
    virtual void f3() {};                // OK. Specifier 'override'  is optional.
    virtual void f4() override {};       // OK. 'override' ensures b::f4 is virtual.
    virtual void f5() override final {}; // OK. d::f5 is both overriden and final.
};

[bearbeiten] Siehe auch