功能的指针为模板类成员的功能
题
我有一个模板类定义的(部分地)为
template <class T> MyClass
{
public:
void DoSomething(){}
};
如果我想要呼叫或重写现从另一类,但能够做到这一点为多个'T'类在同一个地方,我卡住了想法,作为方法的功能的指针是唯一制约的类型。当然,每个MyClass是一个不同的类型,所以我不能储存功能的指针MyClassDoSomething()中的'多态性'的方式。
我的使用情况是,我想存在一种保持类,矢量的函数的指针'或重写现有'这样的,我可以发出一个呼吁所有储存的类别从一个地方。
有任何人任何建议?
解决方案
Ok,这样的函子解决方案不起作用你需要。也许你应该有你的模板类继承的共同基地"接口"类。然后你使用一矢量的那些。
事情是这样的:
class Base {
public:
virtual ~Base(){}
virtual void DoSomething() = 0;
}
template <class T> class MyClass : public Base {
public:
void DoSomething(){}
};
std::vector<Base *> objects;
objects.push_back(new MyClass<int>);
objects.push_back(new MyClass<char>);
其他提示
你知道,这正是我需要做的。 Bizzarly我早就打算将它作为一个对我的用例有效的解决方案打折扣,原因现在让我感到厌烦。我认为我被一些元编程的东西蒙蔽了眼睛,我正在同一个地方进行编译时调度(即混淆了大脑中的编译时间和运行时)。
感谢震撼!
不隶属于 StackOverflow