Bonjour,
J'ai un petit souci avec le code suivant :
A la compilation, j'ai droit au message d'erreur suivant :
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 #include <iostream> using namespace std; class Bug; typedef void (Bug::*Method)(const char*); #include <iostream> using namespace std; class Bug; typedef void (Bug::*Method)(const char*); class Bug { public: // typedef void (Bug::*Method)(const char*); Method method; void echo (const char* str) { cout << str << endl; } Bug() { method = &Bug::echo; (this->*method)("Constructor"); } }; int main() { Bug machin; machin.method = &Bug::echo; (machin.*method)("hello world"); return 0; }
Pour info, j'ai suivi les indications disponible dans ce cours C/C++.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 bug.cxx: In function int main(): bug.cxx:31: erreur: method was not declared in this scope
Le problème est que je ne vois pas le problème ! Il n'arrive pas à accéder au membre method, comme si celui-ci était privé, mais ce n'est pas le cas, sinon la ligne précédente générerait également une erreur !
Je suis ouvert à toute suggestion.
Je vous remercie par avance de votre aide.
Partager