我正在尝试重载和赋值运算符,但是程序不断崩溃,这是我尝试过的。赋值运算符在238行上超载了。Code寻求任何帮助
答案 0 :(得分:0)
老实说,您可能很幸运,该错误已显示出来。
BinaryTree *newTree; newTree->insert(0);
创建指向BinaryTree
的指针,该指针将不指向任何内容,然后使用->
运算符调用取消引用,这会导致c ++中的未定义行为。
假设关于您的函数的所有其他信息都是正确的(包括其他函数的实现),那么正确的方法将是基于您当前的代码(注意该函数返回一个引用):
BinaryTree & BinaryTree::operator=(const BinaryTree &myTree)
{
this->insert(0);
this->FillTree(*this, myTree.root);
return *this;
}
但是,我发现您的代码中很可能还有其他错误,因此您应该听取其他注释者的建议,并首先实现复制构造函数。