函数指针模板类成员函数

问题描述:

我已经定义(部分)一个模板类为函数指针模板类成员函数

template <class T> MyClass 
{ 
public: 
    void DoSomething(){} 
}; 

如果我想从另一个类调用DoSomething的,但能够为多个“T”型做到这一点在同一个地方,我坚持一个想法,因为方法函数指针是唯一受限于类类型的。当然,每个MyClass都是不同的类型,所以我不能以“多态”的方式将函数指针存储到MyClassDoSomething()中。

我的用例是我想在一个持有类中存储一个向“DoSomething”的函数指针向量,这样我就可以从一个地方向所有存储的类发出调用。

有没有人有任何建议?

好吧,所以仿函数解决方案不能按需要工作。也许你应该让你的模板类从一个共同的基础“接口”类继承。然后你使用这些矢量。

事情是这样的:

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早在我的用例中,我已经将它作为一个有效的解决方案予以打折,因为现在逃脱了我的原因。我认为我在编译时调度的同一个地方(即编译时间和运行时间混乱的脑子里)编译了一些元编程的东西。

非常感谢您的支持!