final-Bezeichner
Verwenden Sie das final-Schlüsselwort, um virtuelle Funktionen festzulegen, die in einer abgeleiteten Klasse nicht überschreibbar sind. Sie können es auch verwenden, um Klassen festzulegen, die nicht vererbbar sind.
function-declaration final;
class class-name final base-classes
Hinweise
final ist kontextbezogen und hat nur dann eine besondere Bedeutung, wenn es nach der Deklaration einer Funktion oder eines Klassennamens verwendet wird; andernfalls ist es kein reserviertes Schlüsselwort.
Wenn final in den Klassendeklarationen verwendet wird, ist base-classes ein optionaler Teil der Deklaration.
Beispiel
Im folgenden Beispiel wird das final-Schlüsselwort verwendet, um anzugeben, dass eine virtuelle Funktion nicht überschrieben werden kann.
class BaseClass
{
virtual void func() final;
};
class DerivedClass: public BaseClass
{
virtual void func(); // compiler error: attempting to
// override a final function
};
Informationen dazu, wie Sie angeben, dass Memberfunktionen überschrieben werden können, finden Sie unter override-Bezeichner.
Im folgenden Beispiel wird das final-Schlüsselwort verwendet, um anzugeben, dass eine Klasse nicht vererbt werden kann.
class BaseClass final
{
};
class DerivedClass: public BaseClass // compiler error: BaseClass is
// marked as non-inheritable
{
};