我有這樣的結構:初始化一些空指針節點
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