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

  FORUM HardWare.fr
  Programmation
  C++

  Appeler methode surchargée sans virtual

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Appeler methode surchargée sans virtual

n°2308126
azubal
Posté le 28-11-2017 à 18:50:08  profilanswer
 

Hello à tous,
Soit l'exemple suivant :

 
Code :
  1. class A
  2. {
  3. public:
  4.   void caller()
  5.   {
  6.     foo();
  7.   }
  8. protected:
  9.   void foo()
  10.   {
  11.     std::cout << "A::foo" << std::endl;
  12.   }
  13. };
  14. class B : public A
  15. {
  16. public:
  17.   void foo()
  18.   {
  19.     std::cout << "B::foo" << std::endl;
  20.   }
  21. };
  22. int _tmain(int argc, _TCHAR* argv[])
  23. {
  24.   A a;
  25.   B b;
  26.   a.caller();
  27.   b.caller();
  28. return 0;
  29. }
 

Comment faire pour que "b.caller();" retourne "B::foo" SANS toucher à la class A et sans reecrire "caller" dans B ?


Message édité par azubal le 28-11-2017 à 18:51:41
mood
Publicité
Posté le 28-11-2017 à 18:50:08  profilanswer
 

n°2308133
Terminapor
I'll see you rise.
Posté le 28-11-2017 à 23:01:53  profilanswer
 

Code :
  1. #define caller foo
  2. b.caller();
  3. #undef caller


 :whistle:

 

En vrai je pense pas que ce soit possible étant donné l'exemple, sauf biensûr si foo est une méthode virtuelle (mais dans ce cas tu poserais pas la question j'imagine :D)

 

Pourquoi vouloir ce comportement ?

 

edit : Ok j'avais pas lu le titre :o


Message édité par Terminapor le 28-11-2017 à 23:29:05

---------------
Perhaps you don't deserve to breathe
n°2308135
azubal
Posté le 29-11-2017 à 07:29:36  profilanswer
 

Ahahah  :D  
 
La class A fait partie d'une bibliothèque importée en dehors du projet et je n'ai pas envie de dire a mon client de la patcher car je suis sur qu'il va oublier.
Je n'ai pas envie non plus d'importer la class completement dans le scope du projet pour ne pas l'alourdir inutilement.
Mais bon. Jai pas vraiment le choix au final  [:vizera]


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

  Appeler methode surchargée sans virtual

 

Sujets relatifs
Appeler DllMain d'une librairie dans une application console Windowsquestion sur la méthode de Viola et Jones sur la detection d'objet
Bind, méthode et pointeur sur méthodeAppeler void
[JS] Créer une nouvelle méthode pour n'importe quel objetMéthode .add
Appeler une page en HTML5 via du JavascriptPassage de variables entre méthode imbriquées
Utiliser une méthode d'une class imbriquée dans une class 
Plus de sujets relatifs à : Appeler methode surchargée sans virtual


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