Maison > développement back-end > C++ > Pourquoi une fonction virtuelle pure est-elle initialisée avec \'=0\' ?

Pourquoi une fonction virtuelle pure est-elle initialisée avec \'=0\' ?

Susan Sarandon
Libérer: 2024-12-04 18:31:14
original
916 Les gens l'ont consulté

Why is a Pure Virtual Function Initialized with

Pourquoi l'initialisation par défaut d'une fonction virtuelle pure est-elle "=0" ?

Dans la programmation orientée objet, les fonctions virtuelles pures sont un concept crucial. Comme leur nom l'indique, ce sont des fonctions virtuelles qui doivent être implémentées dans des classes dérivées avant que le programme puisse être terminé. Pour déclarer une fonction comme pure virtuelle, vous utilisez la syntaxe :

virtual void fun() = 0;
Copier après la connexion

Un aspect notable des fonctions virtuelles pures est leur initialisation par défaut à 0. Cela nous amène à la question : pourquoi cette valeur particulière est-elle choisie ?

Contrairement aux hypothèses courantes, l'initialisation "=0" n'est pas destinée à définir l'entrée vtable de la fonction virtuelle pure sur NULL. Cela a été confirmé par Bjarne Stroustrup, le créateur de C, dans son livre "The Design & Evolution of C" :

The curious "=0" syntax was chosen ... because at the time I saw no chance of getting a new keyword accepted.
Copier après la connexion

En d'autres termes, le choix de "=0" était purement syntaxique, motivé par l'absence d'une meilleure façon de représenter une fonction virtuelle pure à l'époque.

Il est important de noter que Stroustrup reconnaît également que définir l'entrée de la table virtuelle sur NULL n'est pas la manière idéale d’implémenter des fonctions virtuelles pures. Les compilateurs C modernes gèrent cet aspect plus efficacement, garantissant que les fonctions virtuelles pures sont gérées de manière appropriée sans compter sur l'initialisation =0.

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