Compartilhar via


especificador final

Você pode usar a palavra-chave final para designar as funções virtuais que não podem ser substituídas em uma classe derivada.Você também pode usá-lo para designar as classes que não podem ser herdadas.

function-declaration final;

class class-name final base-classes

Comentários

final é contextual e tem um significado especial somente quando usou após uma declaração ou um nome de classe de função; se não, não é uma palavra reservada.

Quando final é usado em declarações da classe, base-classes é uma parte opcional da declaração.

Exemplo

O exemplo a seguir usa a palavra-chave final para especificar que uma função virtual não pode ser substituída.

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

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

Para obter informações sobre como especificar que as funções de membro podem ser substituídas, consulte substituir especificador.

O exemplo a seguir usa a palavra-chave final para especificar que uma classe não pode ser herdada.

class BaseClass final 
{
};

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

Consulte também

Referência

Palavras-chave C++

substituir especificador

Outros recursos

C++ Type Names