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

  FORUM HardWare.fr
  Programmation
  C++

  Heritage virtual pure sur prototype différent.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Heritage virtual pure sur prototype différent.

n°2222471
azubal
Posté le 17-03-2014 à 12:29:25  profilanswer
 

Hello à tous.
J'aimerai comprendre pourquoi le petit bout de code suivant ne compile pas :

Code :
  1. class A {
  2. public:
  3. void bar(char *buf, int size)
  4. {
  5.  std::cout << "A::foo();" << std::endl;
  6.  bar(buf[0]);
  7. }
  8. virtual void bar(char buf) = 0;
  9. };
  10. class B : public A {
  11. public:
  12. virtual void bar(char buf)
  13. {
  14.  std::cout << "B::bar();" << std::endl;
  15. }
  16. };
  17. int main()
  18. {
  19. B b;
  20. b.bar("toto", 5);
  21. }


 :??:  :??:


Message édité par azubal le 17-03-2014 à 12:29:43
mood
Publicité
Posté le 17-03-2014 à 12:29:25  profilanswer
 

n°2222472
theshockwa​ve
I work at a firm named Koslow
Posté le 17-03-2014 à 12:35:56  profilanswer
 

déclarer un symbole dans B cache les symboles que tu as hérités et qui portent le même nom. Tu vas avoir besoin de publier ta fonction de A à nouveau.

 

Edit :

Code :
  1. class A {
  2. public:
  3. void bar(const char *buf, int size)
  4. {
  5.   std::cout << "A::foo();" << std::endl;
  6.   bar(buf[0]);
  7. }
  8. virtual void bar(char buf) = 0;
  9. };
  10. class B : public A {
  11. public:
  12. virtual void bar(char buf)
  13. {
  14.   std::cout << "B::bar();" << std::endl;
  15. }
  16. using A::bar;
  17. };
  18. int main()
  19. {
  20. B b;
  21. b.bar("toto", 5);
  22. }
 

Je t'ai aussi passé A::bar comme prenant un const char*, parce que c'est pas top de passer une chaine constante littérale en char*


Message édité par theshockwave le 17-03-2014 à 12:39:03

---------------
last.fm
n°2222474
azubal
Posté le 17-03-2014 à 12:42:21  profilanswer
 

Ah super. Je ne savais pas.
Merci  :jap:


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

  Heritage virtual pure sur prototype différent.

 

Sujets relatifs
Heritage en diamant et virtual pureProbleme constructeurs héritage
[Ada][Débutant POO] Problème d'héritage à l'instantiation d'un paquetCode pour exécuter un traitement différent si un mobile est détecté.
Comportement des références différent entre 5.8 et 5.14JPA : Héritage entre les entity [EclipseLink]
Heritage et Collections [RESOLU]Héritage et constantes
Plus de sujets relatifs à : Heritage virtual pure sur prototype différent.


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