我查看了其他SE帖子,以查看它们是否与我的问题相似,但据我所知,它们与我的问题不相似。
我正在做一个二叉搜索树,作为我班级作业的一部分。我的add函数抛出了一个&l值必需的错误,我也不知道为什么。
bool addNodeToNode(T data, NodeInterface<T>** cNode) {
if ((*cNode) == nullptr || cNode == NULL) {
(*cNode) = new Node<T>(data);
return true;
}
int nodeData = (*cNode)->getData();
if (data == (*cNode)->getData()) return false;
//error thrown on the following 2 lines
if (data < nodeData) addNodeToNode(data, &(*cNode)->getLeftChild());
if (data > nodeData) addNodeToNode(data, &(*cNode)->getRightChild());
return true;
};
据我了解,当无法将左值或右值分配给其他值,但是我没有分配任何东西时,会引发此错误。真正令我困惑的是==运算符不会引发错误。
如果是有关信息,则getData(),getRightChild()和getLeftChild()返回常量指针。