我对如何正确声明从模板类继承的类感到有点困惑。
基类看起来像这样(不包括不相关的位):
template <class Writer>
class Node
{
Writer* writer;
...
public:
Node (std::string& root);
...
}
声明和构造继承类的正确方法是什么? 我想是这样的:
template <class Writer>
class IndexNode : public Node
{...}
但是,这样做会给我“'{' 标记前的预期类名
”。我试过把继承类中的模板声明注释掉,想着也许模板声明本身是继承自父类的,但也没用,也试过了
class IndexNode : template <class Writer> public Node
{...}
,认为模板可能必须显式附加到基类。我想与其继续尝试正确的组合,不如寻求帮助,希望能学到一些能让我理解其中原因的东西。
谢谢!
最佳答案
你的派生类也是模板吗?
是:
template <class Writer>
class IndexNode : public Node<Writer>
{
//...
}
否:
class IndexNode : public Node<SomeClassThatSpecializezNode>
{
//...
}
关于c++ - 从模板类继承的类的正确声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890084/