CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : C++]mot clé virtual et fonction virtuell

DébutPage précedente
1
Page suivantePage suivante
rangerprice rangerprice
MP
Niveau 10
23 août 2014 à 00:47:42

virtuelle*

Quelle est l'utilité du mot clé virtual en C++ ?

le mot clé virtual sert à déclarer des fonctions virtuelles mais , c'est quoi une fonction virtuelle ?

Et quelle est la différence avec une fonction virtuelle pûre ?

swarmpan swarmpan
MP
Niveau 9
23 août 2014 à 01:06:46

Une fonction virtuelle c'est une fonction que tu peux redéfinir ou compléter dans les classes filles.

Une fonction virtuelle pure n'est pas implémentée dans la classe mère (il n'y a rien entre les accolades) et tu es obligé de la définir dans une classe fille

rangerprice rangerprice
MP
Niveau 10
23 août 2014 à 01:10:58

Swarmpan :d) C'est à peu près la même chose que le masquage une fonction virtuelle non ? :(

Le masquage permet de faire la même chose :(

Google_Bot Google_Bot
MP
Niveau 12
23 août 2014 à 01:24:31

Euh. Une méthode virtuelle pure peut aussi être implémentée (on en parlait récemment sur un autre thread, si je retrouve le lien je le poste ici), en pratique.

Et on peut très bien redéfinir une méthode non-virtuelle dans les classes filles, seulement l'édition de liens se fera quand même de manière statique si on ne déclare pas la méthode "mère" comme étant virtuelle.

Quand une méthode est virtuelle, et qu'elle est redéfinie dans des classes filles, le compilateur va gérer une table de méthodes virtuelles, et permettre de résoudre un appel pendant l'exécution plutôt qu'à la compilation. J'ai déjà expliqué ça dans ton autre topic, si B hérite de A et redéfinit sa méthode virtuelle "affiche()", avec ce code:

A* pointeur = new B();
pointeur->affiche();

Le code appelé sera celui de B::affiche() et non A::affiche(). Alors que dans le cas où affiche() ne serait pas virtuelle dans A, c'est A::affiche() qui serait appelée (même si pointeur pointe vers un objet de classe B).

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment