final (C++)
Nach oben zu Schlüsselwörter alphabetisch - Index
Inhaltsverzeichnis
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.