Bonjour c'est encore moi,
j'ai un nouveau problème, j'ai cherché sur le net, sur la FAQ et sur le forum, je ne trouve pas pourquoi ça ne marche pas. Le compilo me dit que je n'ai pas de méthode qui prend un string en paramètre... Pourtant j'en ai une définie dans la classe mère. D'où ça vient, c'est un problème avec la surcharge et l'héritage ? Comment faire ? (je me doute que j'ai encore du faire une grosse bourde mais il y a longtemps que je n'ai pas fait de C++...)
voilà ce que dit g++ :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 class c1 { public: virtual void func() { cout << "func"; } virtual void test(const char* c)= 0; virtual void test(const string &c) { test(c.c_str()); } virtual ~c1() { } }; class c2 : public c1 { public: virtual void test(const char* c) { cout << c << endl; } }; int main(void) { c2 t; std::string toto("toto"); t.func(); t.test(toto); return 0; }
Merci d'avancemain.cpp: In function 'int main()':
main.cpp:30: erreur: no matching function for call to 'c2::test(std::string&)'
main.cpp:21: note: candidats sont: virtual void c2::test(const char*)
Partager