【发布时间】:2011-11-10 14:40:51
【问题描述】:
如果我有一个带有模板的类:
template<typename T>
class foo{
T m_a;
foo(T a){
m_a = a;
};
~foo(){
};
};
有没有办法存储它的多个变体?
例如一个可以同时存储指向foo< int >和foo< string >的指针的向量?
编辑更多信息
我想隐藏这个的实现:
EventListener<string> ev1;
EventListener<int, int> ev2;
EventListener<int, string, double> ev3;
ev1(&Events::nameChange, &nameChangeCallback);
ev2(&Events::healthChange, &healthChangeCallback);
ev3(&Events::newUser, &newUserCallback);
ev1.processEvents();
ev2.processEvents();
ev3.processEvents();
进入这个:
EventManager em;
em.listen(&Events::nameChange, &nameChangeCallback);
em.listen(&Events::healthChange, &healthChangeCallback);
em.listen(&Events::newUser, &newUserCallback);
em.processEvents();
EventManager 需要创建 EventListener 并将其存储到一个向量中,以便能够记住它们并在析构函数中删除它们。
这就是我卡住的地方。
【问题讨论】:
-
您可以为您的用户定义类型存储指向基类的指针。
标签: c++ templates containers