CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • 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 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

virtual

lag-it
lag-it
Niveau 10
25 juillet 2003 à 00:12:21

Je me posait la question :
Quand est il préférable et quand est il déconseillé d´utiliser les fonctions virtual ( et le polymorphisme donc ) ?

Altonfrere
Altonfrere
Niveau 10
25 juillet 2003 à 00:19:55

hmm . .

polymorphisme de méthode donc ? il existe aussi le polymorphisme d´objet . .. mais bon la question n´est pas celle là ( si?) :)

virtual est utilisé en général lorsque tu as besoin de redéfinir une méthode d´une classe mère dans une des classes filles ( mais ce n´est pas obligatoire). Il existe aussi les méthodes virtuelles pures qui, elles, OBLIGENT les classes filles à redéfinir cette méthode, et de plus la classe déclarant ces méthodes v.pures ne pourra être instanciée.

lag-it
lag-it
Niveau 10
25 juillet 2003 à 00:30:51

Oui, polymorphisme de méthode :)
Mais l´intéret réside il uniquement dans le liage dynamique ?
Et les classes abstraites, on s´en sert beaucoup ?

JeanYvesYves
JeanYvesYves
Niveau 10
25 juillet 2003 à 02:32:08

l´interet du virtual au niveau de la classe mere impose des contraintes pour les classes filles : obligé d´avoir certaines fonctions.
Apres, les classes abstreites, j´amais utilisées ! déja utilisé du polymorphisme, de la généricité, mais apres, y´a des trucs vraiment zarbs ! !

Altonfrere
Altonfrere
Niveau 10
25 juillet 2003 à 07:26:13

" Mais l´intéret réside il uniquement dans le liage dynamique ? "

bah ca permet aussi d´éviter de répéter 36 fois les mêmes trucs et ne définir que les éléments spécifiques dans une classe fille tout en appelant la méthode " par défaut" de la classe mère.

ex :

class A
{
public :
virtual void blabla()
{
cout < < " Les classes filles pourront si elles en ont besoin réutiliser cette fonction dans leur propre redéfinition et comme elles n´ont pas envie de tout se retaper alors on ne l´écrit qu´une seule fois \n\n\n";
}
};

class B : public A
{
public :
void blabla()
{
A::blabla();
cout < < " On rajoute des comportements propre à la classe B \n\n\n";
}
};

class C : public A
{
public :
void blabla()
{
A::blabla();
cout < < " On rajoute des comportements propre à la classe C \n\n\n";
}
};

class D : public A
{
public :
void blabla()
{
cout < < " Ici on utilise une simple redéfinition dans la classe D \n\n\n";
}
};

void main()
{
A exA, *pA;
B exB;
C exC;
D exD;

exA.blabla();
exB.blabla();
exC.blabla();
exD.blabla();

pA = & pA->blabla();
pA = & pA->blabla();
pA = & pA->blabla();
}

" Et les classes abstraites, on s´en sert beaucoup ? "

Tout dépend comment tu concois tes programmes . .. Je dirai que tu peux t´en passer mais si tu souhaites vraiment faire de la conception objet " propre", ca peut s´avérer nécessaire voire indispensable. :)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware