final (C++)
Remonter à Liste alphabétique des mots clés - Index
Syntaxe
FUNCTION NAME [[final]]
Description
L'attribut final empêche une classe d'être héritée ou une fonction d'être redéfinie. Vous pouvez ajouter l'attribut final à une définition de classe ou à une déclaration de fonction membre virtuelle dans une définition de classe.
Une classe avec l'attribut final n'est pas autorisée à être une classe de base pour une autre classe. Une fonction virtuelle avec l'attribut final n'est pas redéfinie dans une sous-classe.
Si une fonction membre virtuelle f d'une classe B est marquée final et est dérivée de B dans une classe D, une fonction D::f redéfinit B::f, le programme est mal formé (le compilateur n'émet pas de message).
Exemple
struct B
{
virtual void f [[ final ]] ();
};
struct D : B
{
void f(); // ill-formed
};
Portabilité
POSIX | Win32 | Win64 | ANSI C | ANSI C++ | |
---|---|---|---|---|---|
obsolète |
+ |
Remarque : L'attribut final n'est pas pris en charge par les compilateurs C++ améliorés par Clang.