当前位置:  开发笔记 > 编程语言 > 正文

函数指针指向模板类成员函数

如何解决《函数指针指向模板类成员函数》经验,为你挑选了1个好方法。

我有一个模板化的类(部分)定义为

template  MyClass
{
public:
   void DoSomething(){}
};

如果我想从另一个类调用DoSomething,但是能够在同一个地方为多个'T'类型执行此操作,我会因为方法函数指针被唯一地约束到类类型而陷入困境.当然,每个MyClass都是不同的类型,所以我不能以'多态'的方式存储MyClassDoSomething()的函数指针.

我的用例是我想在一个包含类中存储一个"DoSomething"函数指针向量,这样我就可以从一个地方发出对所有存储类的调用.

有人有什么建议吗?



1> Evan Teran..:

好的,所以functor解决方案无法正常工作.也许您应该让您的模板类继承自公共基础"Interface"类.然后你使用那​​些矢量.

像这样的东西:

class Base { 
public:
  virtual ~Base(){}
  virtual void DoSomething() = 0;
}

template  class MyClass : public Base {
public:
    void DoSomething(){}
};

std::vector objects;
objects.push_back(new MyClass);
objects.push_back(new MyClass);

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有