final (C++)
Nach oben zu Schlüsselwörter alphabetisch - Index
Inhaltsverzeichnis
Syntax
FUNCTION NAME [[final]]
Beschreibung
Das Attribut final verhindert, dass von einer Klasse weiter geerbt werden kann oder dass eine Funktion überschrieben wird. 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(); // ill-formed
};
Portabilität
POSIX | Win32 | Win64 | ANSI C | ANSI C++ | |
---|---|---|---|---|---|
deprecated |
+ |