Comprendre l'initialisation des fonctions virtuelles pures avec '0'
Lors de la déclaration de fonctions virtuelles pures, vous remarquerez peut-être qu'elles sont toujours affectées à la valeur 0 :
virtual void fun() = 0;
Cette pratique pose la question de savoir pourquoi les fonctions virtuelles pures sont initialisées avec 0.
L'hypothèse incorrecte
Au départ, vous auriez peut-être cru que la valeur 0 est attribuée à des fonctions virtuelles pures pour définir l'entrée de la table virtuelle correspondante sur NULL. Cependant, cette hypothèse est incorrecte. La valeur attribuée à une fonction virtuelle pure ne définit pas nécessairement l'entrée de la table virtuelle sur NULL.
La vraie raison de '0'
L'utilisation de la syntaxe =0 pour les fonctions virtuelles pures remonte aux premiers travaux de Bjarne Stroustrup sur C . Plutôt que d'introduire un nouveau mot-clé comme « pure », il a choisi la syntaxe =0 parce qu'il pensait qu'elle avait de meilleures chances d'être acceptée par la communauté C à cette époque.
Comme Stroustrup lui-même le déclare dans son livre : "La conception et l'évolution de C", la syntaxe =0 n'était pas destinée à définir l'entrée de la table virtuelle sur NULL. De plus, définir l'entrée vtable sur NULL n'est pas une stratégie d'implémentation idéale pour les fonctions virtuelles pures.
Conclusion
L'initialisation des fonctions virtuelles pures avec 0 n'est pas liée à définir l'entrée de la table virtuelle sur NULL. Au lieu de cela, la syntaxe =0 a été choisie uniquement pour des raisons de lisibilité et de compatibilité dès les premiers stades du développement C.
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!