Spécificateur final
Vous pouvez utiliser la mot clé finale pour désigner des fonctions virtuelles qui ne peuvent pas être substituées dans une classe dérivée. Vous pouvez également l'utiliser pour désigner les classes qui ne peuvent pas être héritées.
Syntaxe
function-declaration final;
class class-name final base-classes
Notes
final respecte le contexte et a une signification particulière uniquement lorsqu’il est utilisé après une déclaration de fonction ou un nom de classe ; sinon, il ne s’agit pas d’une mot clé réservée.
Quand la dernière est utilisée dans les déclarations de classe, base-classes
elle fait partie facultative de la déclaration.
Exemple
L’exemple suivant utilise la mot clé finale pour spécifier qu’une fonction virtuelle ne peut pas être substituée.
class BaseClass
{
virtual void func() final;
};
class DerivedClass: public BaseClass
{
virtual void func(); // compiler error: attempting to
// override a final function
};
Pour plus d’informations sur la façon de spécifier que les fonctions membres peuvent être substituées, consultez spécificateur de remplacement.
L’exemple suivant utilise la dernière mot clé pour spécifier qu’une classe ne peut pas être héritée.
class BaseClass final
{
};
class DerivedClass: public BaseClass // compiler error: BaseClass is
// marked as non-inheritable
{
};
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour