ゲームプログラミング相談室
■ このスレッドは過去ログ倉庫に格納されています
0383名前は開発中のものです。
02/02/19 03:22ID:???イメージがつかめんので、も少し詳しい解説を希望。
俺は
struct Task {
// 引数はともかく
virtual void exec() = 0;
// 固定長ブロックから切り出す
static void* operator new(size_t);
static void operator delete(void *);
};
を基底クラスに持ってきて、派生クラスを
class TaskBackground : public Task
{
// メンバ変数いろいろ
public:
virtual void exec();
};
みたいに書くのが良いかと思ってたんだが、382 のアイデアは違ってるよね。
タスク連結用のデータは Task に突っ込んでも良いし、別にタスク管理クラスを
class TaskManager {
typedef std::list<boost::shared_ptr<ITask*> > TTasks;
typedef std::vector<TTaskList> TTasksList;
TTasksList m_TasksList;
public:
TaskHandle add(boost::shared_ptr<ITask*> spTask, unsigned uPrio);
void remove(const TaskHandle& hTask);
void exec() {
for (TTasksList::iterator i = m_TasksList.begin(); i != m_TaskList.end(); ++i)
for (TTasks::iterator j = i->begin(); j != i->end(); ++j)
j->exec();
}
};
って感じで作るのも良いかと考えてた。
■ このスレッドは過去ログ倉庫に格納されています