Tho*_*ood 2 c++ inheritance templates
我对如何正确声明从模板类继承的类感到困惑.
基类看起来像这样(不包括不相关的位):
template <class Writer>
class Node
{
Writer* writer;
...
public:
Node (std::string& root);
...
}
Run Code Online (Sandbox Code Playgroud)
声明和构造此类的继承类的正确方法是什么?我想的是:
template <class Writer>
class IndexNode : public Node
{...}
Run Code Online (Sandbox Code Playgroud)
但是,这样做会给我" expected class-name before '{' token".我已经尝试在继承的类中注释掉模板声明,认为模板声明本身可能是从父类继承的,但这也没有帮助,也尝试过
class IndexNode : template <class Writer> public Node
{...}
Run Code Online (Sandbox Code Playgroud)
,思考可能必须将模板显式附加到基类.我想而不是继续采取正确的组合,我会寻求帮助,并希望了解一些能让我理解其原因的东西.
谢谢!
您的派生类也是模板吗?
template <class Writer>
class IndexNode : public Node<Writer>
{
//...
}
Run Code Online (Sandbox Code Playgroud)
class IndexNode : public Node<SomeClassThatSpecializezNode>
{
//...
}
Run Code Online (Sandbox Code Playgroud)