final (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Syntax

FUNCTION NAME [[final]]

Beschreibung

Das Attribut final verhindert, dass von einer Klasse oder Funktion weiter geerbt werden kann, oder, dass eine Funktion überschrieben werden kann. Sie können das Attribut final einer Klassendefinition oder einer Deklaration einer virtuellen Member-Funktion innerhalb einer Klassendefinition hinzufügen.

Eine Klasse mit dem Attribut final darf nicht die Basisklasse für eine andere Klasse sein. Eine virtuelle Funktion mit dem Attribut final kann in einer abgeleiteten Klasse nicht überschrieben werden.

Wenn die virtuelle Member-Funktion f in der Klasse B als final gekennzeichnet ist und in der von B abgeleiteten Klasse D die Funktion D::f die Funktion B::f überschreibt, ist das Programm nicht wohlgeformt (der Compiler gibt keine Meldung aus).

Beispiel

 struct B 
 {
    virtual void f [[ final ]] ();
 };
 
 struct D : B 
 {
    void f(); // nicht wohlgeformt
 };

Portabilität

POSIX Win32 Win64 ANSI C ANSI C++

deprecated

+

Hinweis: Das Attribut final wird vom Clang-basierten C++-Compiler nicht unterstützt.

Siehe auch