正在尝试重载二进制搜索树分配运算符

Trying to overload a Binary Search Tree assignment operator

本文关键字:搜索树 分配 运算符 二进制 重载      更新时间:2023-10-16

我试图重载和赋值运算符,但程序一直崩溃。分配运算符在238线上过载。代码任何帮助都会通知

老实说,你可能很幸运这个bug能显示出来。

BinaryTree *newTree; newTree->insert(0);

创建一个指向BinaryTree的指针,该指针将不指向任何内容,然后使用->运算符调用取消引用它,这将导致c++中未定义的行为。

假设你的函数的其他一切都是正确的(包括其他函数的实现(,那么正确的方法将是基于你当前的代码(注意,函数返回一个引用(:

BinaryTree & BinaryTree::operator=(const BinaryTree &myTree)
{
this->insert(0);
this->FillTree(*this, myTree.root);
return *this;
}

但是,我发现你的代码中很可能还有其他错误,你应该听取其他评论者的建议,首先实现一个复制构造函数。