Maison > développement back-end > C++ > Comment définir un `virtuel

Comment définir un `virtuel

DDD
Libérer: 2024-10-26 19:12:03
original
998 Les gens l'ont consulté

How to Define a Virtual `

Surmonter le virtuel << Erreur de l'opérateur

Lors de la tentative de définition d'un << opérateur en tant que fonction gratuite, les développeurs peuvent rencontrer l'erreur du compilateur "opérateur << : seules les fonctions et bases membres peuvent être virtuelles." Cette erreur survient car les fonctions libres ne peuvent pas être virtuelles.

Pour résoudre ce problème, pensez à ajouter une couche intermédiaire en introduisant une nouvelle fonction membre virtuelle au sein de la classe :

<code class="cpp">class MyClass {
public:
    virtual void print(ostream&amp; where) const;
};</code>
Copier après la connexion

Cette fonction virtuelle fournit un moyen de personnaliser le comportement de sortie dans les sous-classes.

Ensuite, définissez l'opérateur<< en tant que fonction gratuite avec l'ordre correct des paramètres :

<code class="cpp">ostream&amp; operator<< (ostream&amp; out, const MyClass&amp; mc) {
    mc.print(out);
    return out;
}</code>
Copier après la connexion

Cette approche garantit que l'opérateur<< a l'ordre des paramètres souhaité tout en permettant de définir le comportement virtuel dans les sous-classes.

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal