struct Node{
int data;
bolum *right;
bolum *left;
bolum *up;
};
int main(){
Node *root;
root = new Node(5 , NULL , NULL);
}
此代码给出了这 2 个错误:
new initializer expression list treated as compound expression [-fpermissive]
no matching function for call to 'Node::Node(int)
我该如何解决这个问题?
最佳答案
我不明白您为什么要尝试以这种方式创建对象。 结构也可以有构造函数,但在您的情况下,您的数据是公开的,这意味着您可以从 main 初始化它们。
无论如何,如果你想使用带有一些参数的构造函数,你必须实现一个。这就是您会收到这些错误的原因。
例子:
Node (int data2,Node * p1, Node *p2,Node * p3){
data = data2;
right = p1;
left = p2;
up = p3;
}
关于c++ - 使用括号会在声明新节点时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42751617/