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
Libérer: 2024-10-24 14:09:31
original
587 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal