Je développe un code en utilisant le modèle Boss-Worker. J'ai un doute. La liste à laquelle le Boss va s'ajouter est un membre de la classe Boss. Pour que le travailleur puisse y accéder, je fais hériter la classe Worker de Boss.Conception du modèle Boss-Worker
1) Est-ce la bonne façon de partager la liste entre le boss & Worker?
2) Je suis confronté à un héritage ambigu dans mon code. Comment puis-je le résoudre?
ThreadClass
#include <pthread.h>
class ThreadClass
{
public:
virtual int start();
virtual void join();
virtual void execute() = 0; //Each derived class will implement this
virtual ~ThreadClass() {}
ThreadClass() {}
private:
ThreadClass* Tptr;
};
Patron
#include "ThreadClass.h"
#include <list>
class Boss : public virtual ThreadClass
{
public:
virtual void execute();
Boss() {}
~Boss() {}
protected:
std::list<int> Mylist; //To be shared with the worker
};
Travailleur
#include "ThreadClass.h"
#include "Boss.h"
class Worker : public Boss, public ThreadClass //Getting error:Ambiguous ThreadClass
{
public:
virtual void execute();
Worker() {}
~Worker() {}
};
travailleur hérite de Boss & ThreadClass parce que:
1) Le travailleur a besoin d'accéder à la liste de Boss
2) Le travailleur a besoin de filetage fonctions de ThreadClass
J'ai compris votre point. Le travailleur "n'est pas un" patron à hériter de lui. – cppcoder