>>330
こういうことがしたいの?

class CTask { ... };
class CTaskA : public CTask { ... };
class CTaskB : public CTask { ... };
class CTaskC : public CTask { ... };

class CTaskMgr {
private:
 list<CTask*> task_list;
public:
 template <typename T>
 T* add() {
  T* p = new T;
  task_list.push_back(p);
  return p;
 }
 ...
};

CTaskMgr task;
task.add<CTaskA>();
task.add<CTaskC>();
task.add<CTaskB>();