final-Bezeichner

Sie können die endgültige Schlüsselwort (keyword) verwenden, um virtuelle Funktionen festzulegen, die in einer abgeleiteten Klasse nicht außer Kraft gesetzt werden können. Sie können es auch verwenden, um Klassen festzulegen, die nicht vererbbar sind.

Syntax

function-declaration final;
class class-name final base-classes

Hinweise

final ist kontextsensitiv und hat eine besondere Bedeutung nur, wenn sie nach einer Funktionsdeklaration oder einem Klassennamen verwendet wird. Andernfalls handelt es sich nicht um eine reservierte Schlüsselwort (keyword).

Wenn der Abschluss in Klassendeklarationen verwendet wird, base-classes ist ein optionaler Teil der Deklaration.

Beispiel

Im folgenden Beispiel wird die endgültige Schlüsselwort (keyword) verwendet, um anzugeben, dass eine virtuelle Funktion nicht außer Kraft gesetzt werden kann.

class BaseClass
{
    virtual void func() final;
};

class DerivedClass: public BaseClass
{
    virtual void func(); // compiler error: attempting to
                         // override a final function
};

Informationen zum Angeben, dass Memberfunktionen überschrieben werden können, finden Sie unter Außerkraftsetzung des Bezeichners.

Im nächsten Beispiel wird die endgültige Schlüsselwort (keyword) verwendet, um anzugeben, dass eine Klasse nicht geerbt werden kann.

class BaseClass final
{
};

class DerivedClass: public BaseClass // compiler error: BaseClass is
                                     // marked as non-inheritable
{
};

Siehe auch

Schlüsselwörter
override-Bezeichner