Maison >développement back-end >C++ >Pourquoi déclarer des méthodes virtuelles privées en C ?

Pourquoi déclarer des méthodes virtuelles privées en C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-24 14:09:31580parcourir

Why Declare Private Virtual Methods in C  ?

Créer des méthodes virtuelles privées en C

On pourrait se demander pourquoi une méthode privée est déclarée virtuelle en C . Un exemple tiré d'un projet open source illustre ceci :

<code class="cpp">class HTMLDocument : public Document, public CachedResourceClient {
private:
    virtual bool childAllowed(Node*);
    virtual PassRefPtr<Element> createElement(const AtomicString& tagName, ExceptionCode&);
};</code>

Pour comprendre l'avantage de cela, nous nous tournons vers les idées de Herb Sutter :

Ligne directrice n° 2 : Préférer les fonctions virtuelles privées

Selon Sutter, les fonctions virtuelles devraient être déclarées privées. Cela permet aux classes dérivées de remplacer ces fonctions à des fins de personnalisation sans les exposer directement, comme ce serait le cas si elles étaient simplement protégées.

Les fonctions virtuelles sont censées offrir de la flexibilité et ne doivent pas être invoquées directement à partir du code de la classe dérivée. Par conséquent, à moins qu'il n'y ait un besoin spécifique d'invocation directe, privé est le niveau d'accès le plus approprié pour les fonctions virtuelles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn