struct Node{
int data;
bolum *right;
bolum *left;
bolum *up;
};
int main(){
Node *root;
root = new Node(5 , NULL , NULL);
}
此代码给出了这两个错误:
将新的初始化表达式列表视为复合表达式 [-fpermissive]
没有用于调用Node :: Node(int)
的匹配函数
我如何解决这个问题?
答案 0 :(得分:2)
我无法理解为什么要尝试以这种方式创建对象。 结构也可以有构造函数,但在您的情况下,您的数据是公共的,这意味着您可以从main初始化它们。
无论如何,如果你想使用带有一些参数的构造函数,你必须实现一个。这就是你得到这些错误的原因。
示例:
Node (int data2,Node * p1, Node *p2,Node * p3){
data = data2;
right = p1;
left = p2;
up = p3;
}
答案 1 :(得分:0)
Node *root;
root = new Node;
*root={5 , NULL , NULL,NULL};
可能会有所帮助
答案 2 :(得分:0)
还可以在新构造函数中使用整齐的初始化列表:
Node (int data2,Node * p1, Node *p2,Node * p3): data(data2),right(p1),left(p2),up(p3){}