2010-10-09 5 views
1

i besoin d'utiliser la fonction dans un autre fichier de classe en tant que filscomment utiliser le filetage en C++ qui pointe vers une autre classe

int main() 
{ 
master t; 

boost::thread t1(boost::bind(t.start, "exampl")); 

t1.join(); 
} 

i ont une classe master et une fonction start ..i besoin de passer une valeur et à exécuter j'ai utilisé cela dans une même classe, il fonctionne très bien ... peut me dire où je me trompe

Répondre

7

Vous devez lier la fonction membre à l'instance:

boost::thread t1(boost::bind(&master::start, t, "exampl")); 
+0

L'OP pourrait vouloir écrire 'boost :: fil t1 (boost :: bind (& maître :: start, & t," exempl "));' (passer '& t' au lieu de' t' à 'bind') si la copie de l'objet' master' est indésirable ou impossible. – Doug

0

La solution de James fera copier votre objet maître. Si vous voulez trier de passer par référence, puis

boost::thread t1(boost::bind(&master::start, &t, "exampl"));

HTH