我正在尝试创建一个int的LinkedList,为此我创建了一个Node类。但编译器经常给我同样的错误。我在网上搜索,我发现的答案不起作用,或者我不理解它们。
错误如下:
第51行:新类型可能未在返回类型中定义
第51行:构造函数的返回类型规范无效
所有4个构造函数都有相同的问题,第51行的错误只是四个中的第一个。
这是我的Node类,它拥有它。我没有复制getter和setter,因为它们没有错误,代码是半明显的。
非常感谢。 安迪
class Node{
private:
int val;
Node* pPrv;
Node* pNxt;
public:
Node();
Node(Node&);
Node(int);
Node(int, Node*, Node*);
void setVal(int auxVal);
void setPrv(Node* auxPrv);
void setNxt(Node* auxNxt);
int getVal();
Node* getPrv();
Node* getNxt();
}
Node::Node(){ //this is line 51
val = 0;
pPrv = NULL;
pNxt = NULL;
}
Node::Node(Node &node2){ //this line has exactly the same error
val = node2.getVal();
pPrv = node2.getPrv();
pNxt = node2.getNxt();
}
Node::Node(int valAux){ //so does this one
val = valAux;
pPrv = NULL;
pNxt = NULL;
}
Node::Node(int valAux, Node* prvAux, Node* nxtAux){ //and also this one
val = valAux;
pPrv = prvAux;
pNxt = nxtAux;
}
答案 0 :(得分:1)
你忘了在课程定义后放置一个分号。
在这种情况下,编译器会考虑构造函数Node()
class Node{
//...
}
Node::Node(){
val = 0;
pPrv = NULL;
pNxt = NULL;
}
作为其返回类型。