Bonjour � tous!
Je m'exerce aux threads avec glib et j'ai �crit une classe qui devrait pouvoir instancier une classe enfant (6 maximum). De plus cette classe poss�de un membre "int" dont la valeur est choisie et chang�e "al�atoirement" jusqu'� ce que les 6 "int" forment une suite. Je sais pas si c'est tr�s claire...
Le .cc:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 class CTest { public: //...// void _chercher(); protected: int m_val; GThread* m_pthread; CTest* m_parent; CTest* m_enfant; static int compteur; void _enfanter(CTest*); };
Le compilateur me dit "invalide use of member". Par contre si j'ecris une fonction externe � la classe le probleme est "r�solu" (presque puisque je ne peux plus faire ce que je voulais).
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 //...// CTest::CTest(CTest* pointeur):m_parent(pointeur) { if(compteur<6) {m_pthread=g_thread_create((GThreadFunc)_enfanter,this,TRUE,NULL);}-->>erreur //...// } void CTest::_enfanter(CTest* p) { m_enfant=new CTest(p); }
Faut-il comprendre qu'on ne peut pas appeler une fonction membre de la classe � l'int�rieur d'un thread ou y a t-il moyen de le faire malgr� tout?
Partager