繁体   English   中英

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

[英]Using a templated node struct pointer inside a non templated struct in C++

我在 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++ 不能以这种方式工作。 要创建模板的实例,您必须始终指定模板参数或参数是什么,而这正是错误消息所说的内容。

从您的代码示例中不清楚您在这里的意图是什么,但是您需要弄清楚您需要在此处提供什么模板参数,然后指定它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM