Maison > Article > développement back-end > Pourquoi C n’a-t-il pas de constructeur virtuel ?
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!