É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!