在C++中的非模板化结构中使用模板化节点结构指针

Using a templated node struct pointer inside a non templated struct in C++

本文关键字:结构 节点 指针 C++      更新时间:2024-09-26

im使用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应该是什么

spNodePila<int> something;

或者

spNodePila<int> *pointer;

但在你的代码中,你有:

spNodoPila* cand;

您使用了此模板的名称,但未能指定模板参数及其参数。C++不能以这种方式工作。要创建模板的实例,必须始终指定模板参数或自变量,而这正是错误消息所说的。

从你的代码示例中还不清楚你在这里的意图,但你需要弄清楚你需要在这里给出什么模板参数,然后指定它