Par exemple:Est-il utile d'utiliser `override` pour remplacer une fonction virtuelle pure?
class Base {
virtual void my_function() = 0;
};
class Derived : Base {
void my_function() override;
};
D'après ce que je lis, le mot-clé override
est utilisé pour vous assurer que nous avons la signature correcte dans la fonction que nous prépondérants, et il semble être son utilisation seulement.
Cependant, dans le cas d'une fonction virtuelle pure, le compilateur lancerait une erreur si nous utilisions une signature incorrecte dans la classe Derived (ou la classe Base, selon la façon dont on voit les choses). Donc, est-il utile d'ajouter override
à la fin de la déclaration Derived::my_function()
?
Notez que l'abstrait * se propage *. Si vous fournissez la mauvaise signature dans la classe 'Derived', la classe' Derived' devient également abstraite. Cela pourrait ne pas être détecté au bon endroit sans le mot clé 'override'. –
Il garantit que si la classe de base change de manière incompatible avec l'assertion 'override', votre code ne sera pas compilé. – EJP
"Penning programmes pédagogiques délibérément propage des pratiques de programmation préférées" - T.J.Elgan – coderatchet