Compartir a través de


final (especificador)

Puede utilizar 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.

function-declaration final;

class class-name final base-classes

Comentarios

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

Cuando final se utiliza 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 no se puede invalidar una función virtual.

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
{
};

Vea también

Referencia

Palabras clave de C++

override (especificador)

Otros recursos

C++ Type Names