Maison > développement back-end > C++ > Pourquoi les fonctions virtuelles pures sont-elles initialisées avec « 0 » ?

Pourquoi les fonctions virtuelles pures sont-elles initialisées avec « 0 » ?

Patricia Arquette
Libérer: 2024-11-26 14:32:09
original
166 Les gens l'ont consulté

Why are Pure Virtual Functions Initialized with `0`?

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;
Copier après la connexion

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!

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