Sdílet prostřednictvím


final – specifikátor

Konečné klíčové slovo můžete použít k určení virtuálních funkcí, které nelze přepsat v odvozené třídě. Lze jej také použít k označení tříd, ze kterých nelze dědit.

Syntaxe

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

Poznámky

final je kontextově citlivý a má zvláštní význam pouze v případě, že se používá po deklaraci funkce nebo názvu třídy. V opačném případě se nejedná o vyhrazené klíčové slovo.

Pokud je v deklaracích tříd použita konečná , base-classes je volitelná část deklarace.

Příklad

Následující příklad používá konečné klíčové slovo k určení, že virtuální funkci nelze přepsat.

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

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

Informace o tom, jak určit, že členské funkce lze přepsat, naleznete v tématu přepsání specifikátoru.

Další příklad používá konečné klíčové slovo k určení, že třídu nelze zdědit.

class BaseClass final
{
};

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

Viz také

Klíčová slova
override – specifikátor