我正在使用 Boss-Worker 模型模式开发代码。我有个疑问。Boss 将添加到的列表是 Boss 类的成员。为了让 Worker 能够访问它,我让 Worker 类继承自 Boss。
1)这是在老板和工人之间共享列表的正确方式吗?
2)我在我的代码中面临模棱两可的继承。我该如何解决?
线程类
#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;
};
老板
#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
};
工人
#include "ThreadClass.h"
#include "Boss.h"
class Worker : public Boss, public ThreadClass //Getting error:Ambiguous ThreadClass
{
public:
virtual void execute();
Worker() {}
~Worker() {}
};
Worker 继承自 Boss & ThreadClass 因为:
1) Worker 需要访问 Boss 的列表
2) Worker 需要 ThreadClass 的线程函数