node.h
#ifndef node_h
#define node_h
using namespace std;
template<class Type>
struct node {
node (Type v) : next(nullptr),data(v){}
Type data;
node *next;
};
#endif
prioqueueS.cpp
#ifndef prioqueueS
#define prioqueueS
#include "node.h"
using namespace std;
template <class type>
class PrioQueueS {
private:
node *head;
node *tail;
};
#endif
这当然不是我所有的prioqueue课程,但它是我遇到问题的部分,我已经环顾了她一个明确的答案,但没有找到它。这是我的错误消息:
error: invalid use of template-name 'node' without an argument list
node *head;
如果有人能指出我正确的方向来解决这个非常值得赞赏的问题。
编辑:我意识到我忘记了node<Type> head;
所以我可能会删除这个
答案 0 :(得分:1)
node
是模板类型。要声明node
变量(甚至只是指向一个变量的指针),您需要为模板参数指定一个值。但是你没有这样做,所以这就是编译器所抱怨的:
#ifndef prioqueueS
#define prioqueueS
#include "node.h"
using namespace std;
template <class type>
class PrioQueueS {
private:
node *head; // <-- here
node *tail; // <-- here
};
#endif
请改为尝试:
#ifndef prioqueueS
#define prioqueueS
#include "node.h"
using namespace std;
template <class type>
class PrioQueueS {
private:
node<type> *head; // <-- here
node<type> *tail; // <-- here
};
#endif