Bonjour à tous,
Tout comme les pointeurs de fonction, je tente d'utiliser des pointeurs de membres :
Et en fait, lorsque je fais
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 template<class T> class CGes { public: typedef typename int* T::*TDataProperty; int* GetData(T& tData, TDataProperty prop) { return tData.*prop; } }; class CMaClass { public: int m_i; }; CMaClass obj; obj.m_i = 4; // Pour le test CGes<CMaClass>::TDataProperty prop = &CMaClass.m_i; CGes testGes; int i = testGes.GetData(obj, prop);
Ca me renvoi une adresse mémoire proche de zéro (0x00000016). J'imagine qu'il faut additionner l'adresse renvoyé par "obj.*prop" à l'adresse de "&obj" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2int* i = obj.*prop;
Que dois-je modifier dans mon code pour que ça soit correct ?
Merci beaucoup,
A bientôt
Partager