Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1532 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  héritage ou déclaration d'objet ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

héritage ou déclaration d'objet ?

n°622726
blackgodde​ss
vive le troll !
Posté le 27-01-2004 à 12:46:47  profilanswer
 

Bonjour, je voulais connaitre les avantages/inconvénients entre ces 2 écritures :
 

Code :
  1. struct class_base
  2. {
  3.   void methode_base()
  4.   {
  5.     // ...
  6.   }
  7. };
  8. class my_class : class_base
  9. {
  10.   void methode()
  11.   {
  12.     methode_base();
  13.   }
  14.   // ...
  15. };


 
et  
 

Code :
  1. struct class_base
  2. {
  3.   void methode_base()
  4.   {
  5.     // ...
  6.   }
  7. };
  8. class my_class
  9. {
  10.   class_base base;
  11.   void methode()
  12.   {
  13.     base.methode_base();
  14.   }
  15.   // ...
  16. };


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 27-01-2004 à 12:46:47  profilanswer
 

n°622734
Taz
bisounours-codeur
Posté le 27-01-2004 à 12:52:20  profilanswer
 

ça dépend. la première, c'est à dire l'héritage « est implémenté en terme de » est assez sympa? l'autre le, pattern de l'adaptateur (je vais pas dire le mal de que je pense des patterns, mais bon, des gens l'appel comme ça)
 
à toi de voir ce qui te convient le mieux. la premireè solution est pas mal, notemment quand on veut restreindre une interface (usage massif de directive using)

n°622761
blackgodde​ss
vive le troll !
Posté le 27-01-2004 à 13:18:27  profilanswer
 

sinon, une seconde petite question :
est-ce que l'écriture suivante est correcte ?
(elle compile et execute, mais bon ...)
 

Code :
  1. #include <iostream>
  2. class mere
  3. {
  4. protected:
  5.   void membre()
  6.   {
  7.     std::cout "mere : membre\n";
  8.   }
  9. };
  10. struct fille
  11. {
  12.   void membre()
  13.   {
  14.     // je veux appeler membre chez la mere
  15.     mere::membre();
  16.   }
  17. };
  18. int main()
  19. {
  20.   fille f;
  21.   f.membre();
  22. }


 
et avec cette ecriture, encore une question :
je voudrais savoir si le comportement (l'absence d'ambiguité) ci-dessous est standard.
 

Code :
  1. #include <iostream>
  2. struct mere
  3. {
  4.   void membre()
  5.   {
  6.     std::cout "mere : membre\n";
  7.   }
  8. };
  9. struct fille
  10. {
  11.   void membre()
  12.   {
  13.     std::cout "fille : membre\n";
  14.     // je veux appeler membre chez la mere
  15.     mere::membre();
  16.   }
  17. };
  18. int main()
  19. {
  20.   fille f;
  21.   // ici le compilateur compile sans faire d'ambiguité, et il appelle fille::membre
  22.   f.membre();
  23.   // pour appeller mere, je dois ecrire
  24.   f.mere::membre();
  25. }



---------------
-( BlackGoddess )-
n°622764
Taz
bisounours-codeur
Posté le 27-01-2004 à 13:21:46  profilanswer
 

tout ça est possible. enfin bon, la virtualité est la pour aider. les directives using aussi. sinon la syntaxe est correcte, on peut tout à fait appeler un membre d'une classe de base

n°622766
blackgodde​ss
vive le troll !
Posté le 27-01-2004 à 13:23:09  profilanswer
 

bien, merci :jap:


---------------
-( BlackGoddess )-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  héritage ou déclaration d'objet ?

 

Sujets relatifs
quel objet choisir pour mon besoin?un objet peut-il connaitre sa référence ?
Passage d'un objetpb de declaration de structure .
[PERL] Structure d'arbre orienté objet[PERL] Objet et fonction "private"
Héritage public, accès aux données privée de la mèreHéritage de classe et vector
Probleme d'heritage et de surcharge en C#VB + Classe - Tableau d'objet
Plus de sujets relatifs à : héritage ou déclaration d'objet ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR