Maison > développement back-end > C++ > le corps du texte

Pourquoi C n'a-t-il pas de constructeurs virtuels ?

DDD
Libérer: 2024-11-22 09:58:10
original
710 Les gens l'ont consulté

Why Doesn't C   Have Virtual Constructors?

Pourquoi un constructeur virtuel ne fait pas partie de la boîte à outils de C

Contrairement à de nombreux langages de programmation, C n'intègre pas de constructeurs virtuels dans son framework . Dévoiler la justification de cette décision de conception nécessite d'approfondir les caractéristiques inhérentes aux appels virtuels et aux constructeurs.

Les appels virtuels permettent l'invocation de fonctions basées sur des interfaces connues plutôt que sur le type d'objet spécifique. Cette capacité s’avère inestimable pour orchestrer un comportement polymorphe. Cependant, lors de la création d'un objet, une connaissance précise de son type exact est primordiale.

Bjarne Stroustrup, l'architecte du C, articule succinctement ce concept : "Un appel virtuel est un mécanisme permettant d'effectuer un travail à partir d'informations partielles. .. Pour créer un objet, il faut une information complète... Par conséquent, un 'appel à un constructeur' ne peut pas être virtuel."

Si un constructeur virtuel peut paraître souhaitable, son absence ne l'est pas. empêcher d’obtenir des résultats similaires. L'entrée FAQ susmentionnée suggère une approche pratique pour émuler le comportement d'un constructeur virtuel sans recourir à son implémentation explicite.

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.cn
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