c++ - 如何使用模板链接数据结构中的节点对象?

标签 c++ templates data-structures stack

我想使用模板来制作更通用的数据结构,例如通过链接 node* 对象的堆栈。但是一旦我使用了模板,节点类就不再被识别,编译器说:

错误的 GCC 模板类 Node’ declared here 错误 GCC invalid use of template-name ‘Node’ without an argument list

到目前为止,头文件中有我的代码:

#ifndef STACK_HPP
#define STACK_HPP
template <class Object>
class Node{
  friend class Stack;
  private:
    Object data;
    Node* next;
  public:
    Node(Object d);
    Node();
};
template <class Object>
class Stack{
  private:
    Node* top;
    int size;
    bool isEmpty();
  public:
    Stack();
    ~Stack();
    void Push(Object d);
    Object Pop();
    Object Spy();
};
#endif

最佳答案

编译器不会尝试推断出什么 Node可能在你的 Stack类,它只是一个模板。您需要提供一个具体类,如 Node<Object> .

关于c++ - 如何使用模板链接数据结构中的节点对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48752237/

相关文章:

指针存储在容器中的对象的 C++ 分配器

c++ - 从文件中读取多个字节并存储它们以便在 C++ 中进行比较

c++ - 如何从 Windows LPBITMAP 或 HBITMAP 获取实际的字节数组?

C++ lambda 删除偶数

C++:是否可以将模板类的所有实例都加为好友?

c++ - 用于高级综合的任意精度浮点库

java - java中的数据结构

c++ - CRTP编译错误

最短加权路径算法 - 频繁变化的边

algorithm - 二维空间对象的高效数据结构