C+中的转换错误+; 我用二进制搜索树编码C++中的赋值,在编码我的“主”方法时,遇到了这个错误;p> 91:37: error: conversion from ‘binaryTree*’ to non-scalar type ‘binaryTree’ requested

C+中的转换错误+; 我用二进制搜索树编码C++中的赋值,在编码我的“主”方法时,遇到了这个错误;p> 91:37: error: conversion from ‘binaryTree*’ to non-scalar type ‘binaryTree’ requested,c++,binary-tree,binary-search-tree,C++,Binary Tree,Binary Search Tree,第91行如下: binaryTree bt = new binaryTree(root); 我不明白它出了什么问题,我的实验室导师也不明白这个错误 拼写绝对正确 任何帮助都会很好-谢谢 新运算符返回的值具有类型binaryTree*。因此可以将其指定给此类型的对象: binaryTree *bt = new binaryTree(root); 要调用此指针的方法,必须使用运算符->。比如说 bt->deleteTree(); binaryTree &bt = *new

第91行如下:

 binaryTree bt = new binaryTree(root);
我不明白它出了什么问题,我的实验室导师也不明白这个错误

  • 拼写绝对正确

任何帮助都会很好-谢谢

新运算符返回的值具有类型
binaryTree*
。因此可以将其指定给此类型的对象:

binaryTree *bt = new binaryTree(root);
要调用此指针的方法,必须使用运算符
->
。比如说

bt->deleteTree();
binaryTree &bt = *new binaryTree(root);

//...

delete &bt;
或者应该取消对该指针的引用

( *bt ).deleteTree();
另一种方法是使用对已分配对象的引用。比如说

bt->deleteTree();
binaryTree &bt = *new binaryTree(root);

//...

delete &bt;


new返回指针,bt不是指针

 binaryTree *bt = new binaryTree(root);

您正在将指针(binaryTree*)分配给binaryTree类型的正则变量。这是行不通的

你应该改为:


binaryTree*bt=新的binaryTree(根)

你的实验室导师真的不明白这个错误吗?听起来像是瞎子领瞎子。@sjdowling我只是把它放在“我请求帮助,但他们没有得到”的意思上,抱歉搞混了!谢谢,但现在我收到的错误是“请求'bt'中的成员'deleteteTree',这是非类类型'binaryTree*'”,例如我所有的methods@MeganSime这是因为
bt
现在是指向一个值的指针,而不是一个值,所以您必须取消对指针的引用才能使用它,就像
bt->deleteTree()一样
(*bt).deleteTree()
@Megan Sime请参阅我更新的帖子。@vladfrommosco我不建议这样从分配的指针进行引用。它只是让人困惑,而且在我看过的任何代码中都没有使用。@sjdowling在任何情况下你都应该知道没有任何可能性。重读一遍,我觉得我在建议删除时可能犯了一个错误。太晚了,现在无法恢复。