我在编译期间两次收到上述错误消息。其他一切正常,即没有其他编译时错误。这是一个简单的二叉树程序,错误来自的函数是交换或镜像函数,旨在简单地交换所有子树。这是功能
template <class dataType>
void swapSubTrees ( BinaryTree <dataType> * bt )
{
if(bt == NULL)
{
//do nothing
}
else
{
swapSubTrees(bt->left());
swapSubTrees(bt->right());
BinaryTree <int> *temp;
temp = bt->left();
bt->left() = bt->right();
bt->right() = temp;
}
}
这是我的主要函数调用(这是我得到两个非左值错误的地方
swapSubTrees (b1);
b1 是从类 BinaryTree 实例化的对象,它位于树的顶部。有相应的对象 b2、b3、b4 和 b5 是树的其他节点,显然来自我遗漏的代码。无论如何,我似乎无法找到我出错的地方,它可能是什么?任何帮助都会非常感谢!左边的函数看起来像
Template <class dataType>
BinaryTree <dataType> * BinaryTree<dataType> :: left()
{
return leftTree;
}