Probleme syntaxe thread librairie pthread

Probleme syntaxe thread librairie pthread - C++ - Programmation

Marsh Posté le 09-05-2006 à 14:40:22    

Bonjour,
je n'arrive pas à compiler ce petit programme servant a illustrer mon problème :
 

Code :
  1. #include <iostream>
  2. #include <pthread.h>
  3. using namespace std;
  4. static pthread_mutex_t mutex;
  5. class Foo
  6. {
  7.     string f;
  8.     Foo();
  9.     ~Foo();
  10.     void* affiche(void *p_data);
  11. };
  12. Foo::Foo ()
  13. {
  14.     string tmp("Je suis Foo" );
  15.     f=tmp;
  16. }
  17. Foo::~Foo()
  18. { }
  19. void* Foo::affiche(void *p_data)
  20. {
  21.     cout << f << endl;
  22.     return NULL;
  23. }
  24. int main()
  25. {
  26.     pthread_mutex_init (&mutex, NULL);
  27.     pthread_t thrd1;
  28.     Foo f;
  29.     pthread_create(&thrd1,NULL,f.affiche,NULL);
  30.     pthread_join(thrd1, NULL);
  31.     cout << "Fin" << endl;
  32.     return 0;
  33. }


 
Ce programme ne fait pas grand chose, il sert juste d'illustration au problème que je rencontre.
 
Pourquoi le compilo me dit-il :  
fichier.cpp:40: error: argument of type `void*(Foo::)(void*)' does not match `void*(*)(void*)'
Et comment résoudre mon problème.
D'avance merci !
 
TuRn3r


Message édité par turn3r le 09-05-2006 à 15:29:16

---------------
Les ventes de véhicules neufs ont chuté de 7%, y'en a marre des pirates qui téléchargent illégalement des voitures sur internet !!
Reply

Marsh Posté le 09-05-2006 à 14:40:22   

Reply

Marsh Posté le 09-05-2006 à 18:53:59    

Salut,
Tu lui passe une methode d'une classe alors qu'il attend une fonction!

Reply

Marsh Posté le 09-05-2006 à 19:32:25    

et c'est tout. Alors sois fais une recherche, soit utilise boost.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed