Maison  >  Article  >  développement back-end  >  Pourquoi C n’a-t-il pas de constructeur virtuel ?

Pourquoi C n’a-t-il pas de constructeur virtuel ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-18 07:23:02861parcourir

Why Doesn't C   Have a Virtual Constructor?

C a-t-il un constructeur virtuel ?

Contrairement à d'autres langages, C ne fournit pas de constructeur virtuel. Cela a soulevé la question : pourquoi pas ?

Réponse du Créateur lui-même

Bjarne Stroustrup, le père de C, propose une explication perspicace :

"Un appel virtuel est un mécanisme permettant d'effectuer un travail à partir d'informations partielles. [...] Pour créer un objet, vous avez besoin d'informations complètes. [...] Par conséquent, un appel à un constructeur ne peut pas être virtuel."

Comprendre le concept

Essentiellement, les fonctions virtuelles permettent une liaison dynamique, permettant au code d'interagir avec des objets de différents types sans connaître leurs classes exactes. Cependant, la création d'un objet nécessite des informations précises sur le type à instancier, rendant un constructeur virtuel une impossibilité conceptuelle.

Approches alternatives

Malgré l'absence d'un constructeur virtuel, C propose des approches alternatives pour obtenir des fonctionnalités similaires. L'entrée FAQ de Stroustrup fournit le code pour une telle solution, démontrant comment accomplir le comportement souhaité sans constructeur virtuel.

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