C++类继承自模板类而不知道类型?

Æle*_*lex 8 c++ inheritance templates class

我正在设计一个模板类Policy,它需要能够处理指向其他类的指针.

template <class P>
class Policy
{
  private:   
    const P *state;
  public:
    Policy (P const* s) : state(s){};
};
Run Code Online (Sandbox Code Playgroud)

这很好用.现在我想继承上面的模板类并创建新的子类:

class Greedy : public Policy<???>
{
  public:
    template <typename P> Greedy (P const* s) : Policy(s) {}:
};

class Explora : public Policy<???>
{ 
  public:
    template <typename P> Explora (P const* s) : Policy(s) {}:
};
Run Code Online (Sandbox Code Playgroud)

问题是,在定义这些类时,我不知道它们将用于基本模板类的类型.这甚至可能吗?我想要从继承的类构造函数(可能是模板化)获得的类型,然后将其传递给基类construtor.我能这样做吗?如果有,怎么样?typedefining enums?我已经看到了这个问题,但我认为它并没有真正回答这个问题.

GMa*_*ckG 15

让他们成为模板类:

template <typename P>
class Greedy : public Policy<P>
{
    // now you know
};
Run Code Online (Sandbox Code Playgroud)