0

我想实现以下行为。在基类中,我希望有一个容器来存储指向派生类方法的指针。(我想在那里存储 h1 和 h2)。基类还实现了允许存储这些指针和容器本身的方法

还没有任何代码准备好,因为我想知道这是否可能 - 例如:

template<typename E, typename S>
using Map = std::unordered_map<E, std::function<S* (S&, void)>>;

template<typename E, typename S>
class Base {
someFunctToPutPointersIntoMap() {}
Map<E, S> mEventMap;
}

template<typename E, typename S>
class Derived: public Base<E, S> {

  public:
    Derived* h1(void) {};
    Derived* h2(void) {};

};

但是,我如何声明派生类的对象?对我来说,它的参数是递归的,例如。

Derived<E, Derived<E, Derived<E, Derived<E, ...etc... > object;

所以它永远不会编译。我确信有一些方法可以处理它,但我不知道。

4

0 回答 0