Maison >développement back-end >C++ >Pourquoi les constructeurs virtuels ne sont-ils pas possibles en C ?

Pourquoi les constructeurs virtuels ne sont-ils pas possibles en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-30 20:52:15866parcourir

Why Are Virtual Constructors Not Possible in C  ?

Constructeurs virtuels en C : Démystifiés

Pourquoi la notion de constructeurs virtuels est-elle étrangère au langage de programmation C ? Cette question en a intrigué beaucoup, et il est temps de dévoiler la réponse à cette énigme.

Selon le pionnier du C Bjarne Stroustrup, un constructeur virtuel n'est conceptuellement pas réalisable car il contredit la nature de la création d'objets. Un appel virtuel est conçu pour gérer des situations dans lesquelles le type spécifique de l'objet appelé n'est pas entièrement connu. Cependant, la création d'objets nécessite la connaissance du type exact requis. Par conséquent, le but même d'un constructeur virtuel est en contradiction avec le mécanisme fondamental de construction d'objets.

Pour obtenir une fonctionnalité similaire, Stroustrup suggère une approche alternative qui imite le comportement d'un constructeur virtuel sans ses limitations inhérentes. Cette solution de contournement consiste à exploiter une méthode appelée « double répartition », qui permet une vérification de type pendant l'exécution.

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