C++ “从非标量类型转换”;节点*”;“到标量类型”;节点";请求

C++ “从非标量类型转换”;节点*”;“到标量类型”;节点";请求,c++,pointers,C++,Pointers,这行有错误。我尝试了许多不同的编辑来尝试和修复,但我似乎无法正确地进行编辑。我实现的是一个队列(使用列表),这一行是排队(int item)操作的一部分 node obj = new node (item, <node * pointer>); 我试过这句话: node * ptr = NULL; node obj = new node (item, ptr); 但这仍然会产生同样的错误。因为这个节点将是队列中的最后一个节点,所以它不应该指向任何东西(也许我走错了方向!)。将指针

这行有错误。我尝试了许多不同的编辑来尝试和修复,但我似乎无法正确地进行编辑。我实现的是一个队列(使用列表),这一行是排队(int item)操作的一部分

node obj = new node (item, <node * pointer>);
我试过这句话:

node * ptr = NULL;
node obj = new node (item, ptr);

但这仍然会产生同样的错误。因为这个节点将是队列中的最后一个节点,所以它不应该指向任何东西(也许我走错了方向!)。将指针设置为
NULL
在该代码之前的部分中有效。一个很好的开始是解释错误消息的实际含义,即我是否传递了一个“node*”而它期望一个“node”,或者反之亦然?也许我遗漏了一些关于指针的信息,或者与堆有关的信息。提前感谢您的帮助。

A
new
-表达式返回指向已分配对象的指针。因此,您需要:

node* obj = new node(item, ptr);
从错误消息中可以明显看出这一点。它告诉您不能从
节点*
转换为
节点
,因为您将
obj
声明为
节点
。它不是指你正在传递的论点

当然,您根本不能使用
new

node obj(item, ptr);

new
-表达式返回指向已分配对象的指针。因此,您需要:

node* obj = new node(item, ptr);
从错误消息中可以明显看出这一点。它告诉您不能从
节点*
转换为
节点
,因为您将
obj
声明为
节点
。它不是指你正在传递的论点

当然,您根本不能使用
new

node obj(item, ptr);

基本——家庭作业——你是想安装下一票吸引器吗?请具体说明你遇到的错误!如果你没有英文版本,只需使用谷歌或类似网站的拙劣翻译(更好的是用谷歌或类似网站进行复制)。在以后的问题中,请记住这一点。感谢大家的提醒,我只是想让大家知道1)我没有经验,所以高级解决方案不适合我的水平;2)我看到其他人因为没有提到他们的问题与家庭作业有关而受到指责,应该指出。至少你不应该在问题标题中提到“家庭作业”;)@用户1920043:嗯,这是主观的。我不认为这些人代表了大多数人或政府的观点。这更像是,如果你的问题不是家庭作业就不会被发布,你根本不应该发布它;否则,这一点都不值得一提。basic——家庭作业——你的意思是安装一个downvote吸引器吗?请详细说明你遇到的错误!如果你没有英文版本,只需使用谷歌或类似网站的拙劣翻译(更好的是用谷歌或类似网站进行复制)。在以后的问题中,请记住这一点。感谢大家的提醒,我只是想让大家知道1)我没有经验,所以高级解决方案不适合我的水平;2)我看到其他人因为没有提到他们的问题与家庭作业有关而受到指责,应该指出。至少你不应该在问题标题中提到“家庭作业”;)@用户1920043:嗯,这是主观的。我不认为这些人代表了大多数人或政府的观点。这更像是,如果你的问题不是家庭作业就不会被发布,你根本不应该发布它;否则,这根本不值一提。