Maison > développement back-end > C++ > Pourquoi `= 0` est-il utilisé pour déclarer des fonctions virtuelles pures en C ?

Pourquoi `= 0` est-il utilisé pour déclarer des fonctions virtuelles pures en C ?

DDD
Libérer: 2024-12-17 20:57:10
original
648 Les gens l'ont consulté

Why is `= 0` Used to Declare Pure Virtual Functions in C  ?

Pourquoi une fonction virtuelle pure est-elle initialisée par 0 ?

Les fonctions virtuelles pures sont une partie essentielle du modèle de programmation orienté objet de C. Ils permettent aux classes de définir des méthodes qui doivent être remplacées par des classes dérivées, forçant ainsi les classes dérivées à fournir des implémentations pour ces méthodes.

Lors de la déclaration d'une fonction virtuelle pure, il est courant de l'initialiser avec 0. Cela a a amené beaucoup à croire que cette initialisation est nécessaire pour définir l'entrée de la table virtuelle de la fonction sur NULL. Cependant, cette compréhension est incorrecte.

Le =0 à la fin d'une déclaration de fonction virtuelle pure n'est pas une initialisation. Au lieu de cela, c'est un indicateur syntaxique que cette fonction est purement virtuelle. C'est une conséquence des limitations lors du processus de conception du langage, comme l'explique Bjarne Stroustrup dans son livre "The Design & Evolution of C".

L'implémentation de fonctions virtuelles pures n'implique pas nécessairement de définir l'entrée de la table virtuelle sur NUL. En fait, Stroustrup déclare explicitement que cette approche n'est pas le meilleur moyen d'implémenter des fonctions virtuelles pures.

Alors, pourquoi 0 est-il utilisé pour les fonctions virtuelles pures ? La réponse réside dans la conception du langage plutôt que dans les besoins de mise en œuvre technique.

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