Function pointer to template class member functions

前端 未结 2 1615
孤城傲影
孤城傲影 2021-01-20 05:24

I have a templated class defined (in part) as

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

If I want to call DoSom

2条回答
  •  醉酒成梦
    2021-01-20 05:59

    Ok, so the functor solution doesn't work as you need. Perhaps you should have your template class inherit from a common base "Interface" class. And then you use a vector of those.

    Something like this:

    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);
    

提交回复
热议问题