J'ai une petite enveloppe qui centralisent ce qui est par rapport aux fils:« méthode virtuelle pure appelée » lors de la mise en œuvre d'un boost :: interface wrapper fil
class Thread {
protected:
boost::thread *m_thread;
virtual void work() = 0;
void do_work() {
work();
}
public:
Thread() : m_thread(NULL) {}
virtual ~Thread() {
catch_up();
delete m_thread;
}
inline void catch_up() {
if(m_thread != NULL) {
m_thread->join();
}
}
void run() {
m_thread = new boost::thread(boost::bind(&Thread::do_work, boost::ref(*this)));
}
};
Quand je mets en œuvre, dites ce qui suit:
class A : public Thread {
void work() {}
};
a:
A a; a.run();
Je suis une terminaison d'exécution avec un joli "méthode virtuelle pure appelée" displ ayed. Je pense que c'est l'argument boost :: bind, mais je ne sais pas comment dire "Utiliser une implémentation virtuelle pure" ...
Merci d'avance.
Cordialement,
Mister Mystère
Eh bien, c'était simple ... Merci, vous l'avez dit clairement. Mais maintenant j'ai un plus gros problème (booléens aléatoires apparemment ...), et je pense que ce sera plus difficile à déboguer. Je n'aurais pas dû utiliser mon "joker" ici pour ça, sinon je paraîtrai indigent ^^ ' –