Bonjour,
J'utilise GCC v4.1...
je n'ai pas une grande habitude des subtilités du C++ en matière de surcharge, mais il me semble que le code suivant devrait fonctionner :
Hors, si le premier appel se déroule bien, le second par en boucle infinie, en observant la pile il semble que ce ne soit pas func(const char *) qui soit appelé mais que l'on ait un appel récursif (et donc dans ce cas infini)
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 class cl { public: virtual void func(const char *string) { cout << "const char*" << endl; } virtual void func(const std::string &str) const { func(str.c_str()); } }; int main(void) { cl c; c.func("Test"); c.func(std::string("Test")); return 0; }
J'ai fait une erreur quelque part ?
Merci
Partager