final – specifikátor
Můžete použít final Chcete-li nastavit virtuální funkce, které nemůže být přepsána v odvozené třídě.Lze je také použít k označení třídy, které nemůžou být zděděny.
function-declaration final;
class class-name final base-classes
Poznámky
finalzávisí na kontextu a má zvláštní význam pouze v případě, že se používá po deklaraci funkce nebo název třídy; v opačném případě není vyhrazené klíčové slovo.
Při final se používá v deklarace třídy base-classes je volitelná součást celního prohlášení.
Příklad
Následující příklad používá final klíčové slovo, chcete-li určit, že virtuální funkce nemůže být přepsáno.
class BaseClass
{
virtual void func() final;
};
class DerivedClass: public BaseClass
{
virtual void func(); // compiler error: attempting to
// override a final function
};
Chcete-li zobrazit informace o tom, jak určit, zda lze přepsat členské funkce, viz override – specifikátor.
V dalším příkladu final klíčové slovo, které nemůžou být zděděny třídy.
class BaseClass final
{
};
class DerivedClass: public BaseClass // compiler error: BaseClass is
// marked as non-inheritable
{
};