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

Pourquoi les constructeurs virtuels sont-ils absents en C ?

Barbara Streisand
Libérer: 2024-11-19 09:22:02
original
416 Les gens l'ont consulté

Why are Virtual Constructors Absent in C  ?

Éviter les constructeurs virtuels en C : aperçus de Bjarne Stroustrup

Bien que la programmation orientée objet utilise couramment des fonctions virtuelles pour activer le polymorphisme, C n'a pas le concept de constructeurs virtuels. Cette particularité a laissé de nombreux développeurs perplexes, les conduisant à la question : Pourquoi cette fonctionnalité est-elle absente en C ?

Pour approfondir le raisonnement derrière cette absence, recherchons la sagesse du créateur de C, Bjarne Stroustrup, qui a écrit l'explication suivante dans la FAQ sur le style et la technique C :

"Un appel virtuel est un mécanisme permettant d'obtenir une fonctionnalité lorsqu'on lui donne des informations partielles sur un objet. Plus précisément, les appels virtuels permettent d'appeler des fonctions même lorsqu'ils ne connaissent que les interfaces. et non le type spécifique de l'objet. Cependant, la création d'un objet nécessite des informations complètes, notamment connaître le type exact d'objet à instancier. Par conséquent, l'appel d'un constructeur ne peut pas être rendu virtuel."

Ce raisonnement logique explique pourquoi. C n'a pas de constructeurs virtuels. Malgré cette limitation, la FAQ de Stroustrup propose également un extrait de code qui offre un moyen alternatif d'obtenir des fonctionnalités similaires sans recourir à des constructeurs virtuels.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal