Maison > développement back-end > C++ > Comment puis-je appeler la fonction virtuelle d'une classe de base à partir d'une fonction remplacée en C ?

Comment puis-je appeler la fonction virtuelle d'une classe de base à partir d'une fonction remplacée en C ?

Barbara Streisand
Libérer: 2024-12-08 06:52:11
original
186 Les gens l'ont consulté

How Can I Call a Base Class's Virtual Function from an Overridden Function in C  ?

Appel de la fonction virtuelle d'une classe de base à partir d'une fonction remplacée en C

Dans la programmation orientée objet, il arrive souvent qu'une classe dérivée remplace une classe dérivée fonction de sa classe de base. En Java, la syntaxe super.funcname() peut être utilisée pour appeler la méthode de la classe de base remplacée. Cependant, en C , ce n'est pas aussi simple.

Surcharge des fonctions virtuelles en C

En C , pour remplacer une fonction virtuelle dans une classe dérivée, le mot-clé override est utilisé. Cela aide le compilateur à vérifier si la signature de la fonction remplacée correspond à la fonction de la classe de base. Cependant, contrairement à Java, C ne dispose pas d'un mécanisme direct comme super pour accéder à la méthode remplacée par la classe de base.

Appel de la fonction de la classe de base à partir de la classe dérivée

Pour appeler la fonction de la classe de base remplacée par la classe dérivée, vous devez nommer explicitement la classe de base. Cela peut être fait à partir de n’importe quelle méthode de la classe dérivée. Voici comment procéder :

class Bar : public Foo {
  // ...

  void printStuff() override {  // help the compiler to check
    Foo::printStuff(); // calls base class' function
  }
};
Copier après la connexion

Dans la méthode printStuff() de la classe Bar, nous utilisons Foo::printStuff() pour appeler la fonction de la classe de base. Le mot-clé override garantit que le compilateur détecte toute erreur ou incohérence dans la signature de la fonction.

En nommant explicitement la classe de base, vous pouvez vous assurer que la fonction correcte est appelée, même dans les scénarios où l'héritage multiple ou d'autres complexités peuvent exister. Cette approche explicite apporte de la clarté et évite les comportements involontaires.

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