Compartir vía


final (especificador)

Puede usa la palabra clave final para designar funciones virtuales que no se pueden invalidar en una clase derivada. También puede utilizarla para designar clases que no se pueden heredar.

Sintaxis

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

Comentarios

final es contextual y tiene un significado especial solo cuando se usa después de una declaración de función o un nombre de clase; de lo contrario, no es una palabra clave reservada.

Cuando final se usa en declaraciones de clase, base-classes es una parte opcional de la declaración.

Ejemplo

En el ejemplo siguiente se usa la palabra clave final para especificar que una función virtual no se puede invalidar.

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

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

Para obtener información sobre cómo especificar que las funciones miembro se puedan invalidar, vea override (especificador).

En el ejemplo siguiente se usa la palabra clave final para especificar que una clase no se puede heredar.

class BaseClass final
{
};

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

Consulte también

Palabras clave
override (Especificador)