我想使用模板来制作更通用的数据结构,例如通过链接 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/