Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C++] Classes virtuelles

Bon Bon ...

    17 juin 2006 à 1:27:03

    Salut à tous,

    Je viens tout juste de commencer le C++ (je connais relativement bien le php), j'ai parcouru le cours de C de Mateo, j'ai cerné les grandes lignes, pointeurs, structures & Co.
    Je lis plus profondément un cours sur developpez.com

    Je ne comprends pas bien l'utilité de l'héritage d'une classe, comme classe virtuelle ...

    Citation : Pas de titre

    Le problème est résolu en déclarant virtuelle la classe de base commune dans la spécification de l'héritage pour les classes filles. Les données de la classe de base ne seront alors plus dupliquées. Pour déclarer une classe mère comme une classe virtuelle, il faut faire précéder son nom du mot clé virtual dans l'héritage des classes filles.



    http://c.developpez.com/tutcpp/x2951.php

    Ca sert juste dans ce petit cas ?

    Merci d'avance :)

    Edit : Ensuite, j'ai un petit peu de mal avec les classes amies, cela permet juste à une autre classe d'accéder à des champs privés d'une autre classe ?

    Ps.: Je me doute qu'on a pas besoin de ça tous les jours, mais bon ^^
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      17 juin 2006 à 2:07:19

      Ca me parait assez bien expliqué...

      Si on a 2 classes héritées B,C de la même classe A. Si on crée un classe D qui hérite de B et C, alors on se retrouve avec 2 instances de A.

      C'est à dire que si dans A il y a un booléen : bool chose;
      alors il y en a un pour la classe héritée de B, et un pour la classe hérité de C, donc déja ca prend 2x trop de place mémoire, puis ca oblige à faire 2x les mêmes calculs sur les procédures et fonction de A (une fois pour B une fois pour C), et d'un point de vu informatique : "il ne dois pas y avoir redondance d'information", ie : il faut pas que la même information soit à 2 endroits différents, car cela pose plein d'autres problèmes (de mise à jour notament).

      Avec le mot clef virtual, c'est la même instance pour les 2 classes sous jacentes B et C, donc même booléen.

      Citation : Touki

      Edit : Ensuite, j'ai un petit peu de mal avec les classes amies, cela permet juste à une autre classe d'accéder à des champs privés d'une autre classe ?



      De toute facon toute ces histoire de protected... c'est pour faire de la programmation sérieuse, donc forcement il doit y avoir ce genre de problèmes, il faut qu'une classe ai finalement accès au éléments protégés, alors que les autres non.

      Voila, en tout cas j'ai appris 2 choses en C++...
      • Partager sur Facebook
      • Partager sur Twitter

      [C++] Classes virtuelles

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown