我在C++中使用堆栈和列表。
我有这个模板节点的堆栈
template <typename TS>
struct spNodoPila {
TS info;
spNodoPila<TS>* next;
};
而且我想在列表的另一个节点结构中插入一个指针(没有模板),因为我需要链接到列表节点的堆栈:struct spNodoLista {
sInfoLista info;
spNodoPila* cand;
spNodoLista* prev;
spNodoLista* next;
spNodoVotos* vlink;
};
问题是“spNodoPila * cand”;这行给我错误“模板类的参数列表丢失”,我无法弄清楚原因。会感谢您的帮助。
最佳答案
错误消息“缺少模板类的参数列表”告诉您确切的错误。
template <typename TS>
struct spNodoPila {
您声明了此模板。该模板采用一个参数,一个参数。这就是TS
。要实例化模板,必须指定参数是什么,TS
应该是什么。例如,如果您希望此模板的实例带有`int,则应编写:spNodePila<int> something;
或许spNodePila<int> *pointer;
但是在您的代码中,您有: spNodoPila* cand;
您使用了此模板的名称,但未能指定模板参数,即其参数。 C++无法以这种方式工作。要创建模板的实例,您必须始终指定模板参数或参数是什么,而这正是错误消息所说的。从您的代码示例中尚不清楚您的意图是什么,但是您需要弄清楚需要在此处提供的模板参数,然后指定它。
关于c++ - 在C++中的非模板结构内使用模板节点结构指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64795885/