我有这样的结构:初始化一些空指针节点
struct Node{
int key;
Node *parent;
Node *left;
Node *right;
Node(Node *p, Node *l, Node *r){
parent = p;
left = l;
right = r;
}
};
,然后我有以下的,其中current
是Node*
:
current->left = new Node(current, new Node, new Node);
,但我得到
error: no matching constructor for initialization of 'Node'
current->left = new Node(current, new Node, new Node);
^
有什么问题? new Node
不会返回指向未初始化的指针Node
,它应该满足构造函数的要求吗?
您定义了一个ctor,所以任何'Node'都应该根据定义与该ctor构建。你不能有一个未初始化的'节点',这是什么意思。 –
也许这会工作:'current-> left = new Node(current,null,null);'? – kostek
在C++/c中不要使用new/malloc,因为你必须删除/释放位于堆上的已分配内存。 – Tdorno