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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de