<分区>
问题:“bool (BST::Node::)(int)”类型的参数与“bool”不匹配是什么意思 "什么意思?
信息:
我正在做一个制作二叉搜索树的作业。虽然我的“包含”函数没有编译:
bool contains(Item val)
{
if(val == myItem) return true;
if(val < myItem)
if (myLeft) return myLeft->contains;
else return false;
if(myRight) return myRight->contains;
return false;
}
我正在使用 if(myLeft)
和 if(myRight)
在我跟随节点之前检查是否存在。但是我收到以下错误消息:
BST.h:100:38: error: argument of type ‘bool (BST<int>::Node::)(int)’ does not match ‘bool’
BST.h:102:32: error: argument of type ‘bool (BST<int>::Node::)(int)’ does not match ‘bool’
第 100 和 102 行包含 if(myLeft) 和 if(myRight)。令人讨厌的是,我的插入函数工作正常:
void insert(Item val)
{
if(val < myItem)
if (myLeft)
myLeft->insert(val);
else
myLeft = new Node(val);
else if(val > myItem)
if (myRight)
myRight->insert(val);
else
myRight = new Node(val);
else throw Exception("Insert()","Can't add duplicate values");
}
但我还是做了同样的事情。我试图更改它以检查 NULL,所以它变成了 if(myLeft!=NULL)
并且它给出了相同的错误。关于我在这里遗漏了什么的任何线索?