404 votes

Puis-je appeler une classe de base ' fonction virtuelle s si je ' m substitution ?

Dire que j’ai des classes et mis en place comme ceci :

Comme annoté dans le code, je voudrais être en mesure d’appeler la fonction de la classe de base que je suis la substitution. En Java, il y a la `` syntaxe. Est-ce possible en C++ ?

527voto

sth Points 91594

La syntaxe de C++ est comme ceci :

136voto

Alex B Points 34304

Oui,

C’est le même que `` en Java, mais il permet l’appel à des implémentations de bases différentes quand vous avez l’héritage multiple.

81voto

AlwaysTraining Points 506

Parfois vous devez appeler l’implémentation de la classe de base, lorsque vous n’êtes pas dans la fonction dérivée... Il fonctionne toujours :

29voto

MartinStettner Points 14514

Juste au cas où vous procédez comme suit pour un grand nombre de fonctions dans votre classe :

Cela pourrait sauver un peu d’écriture si vous souhaitez renommer Foo.

6voto

Si vous voulez appeler une fonction de classe de base d’une classe dérivée, vous pouvez simplement appeler à l’intérieur de la fonction substituée avec mentionnant le nom de la classe de base (comme Foo::printStuff()).

insérer ici le code

Encore une fois, vous pouvez déterminer lors de l’exécution dont la fonction à appeler à l’aide de l’objet de cette classe (dérivée ou base). Mais pour cela, que votre fonction à la classe de base doit être marquée comme virtual.

code ci-dessous

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X