比较运算符上的l值必需错误

时间:2018-08-10 20:24:49

标签: c++ pointers lvalue

我查看了其他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()返回常量指针。

0 个答案:

没有答案