final (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Liste alphabétique des mots clés - Index


Remarque: Cette fonctionnalité est disponible uniquement avec le compilateur bcc32 classique, et pas avec le compilateur amélioré par Clang moderne.

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.

Voir aussi