Maison  >  Article  >  développement back-end  >  Pourquoi C n'a-t-il pas de constructeurs virtuels ?

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

DDD
DDDoriginal
2024-11-22 09:58:10728parcourir

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!

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