final (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index

Hinweis: Dieses Feature ist nur für den klassischen bcc32-Compiler, nicht für den modernen durch Clang erweiterten Compiler verfügbar.

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

+

Hinweis: Das Attribut deprecated wird nicht für durch Clang erweiterte C++-Compiler unterstützt.

Siehe auch