Честно говоря, вам, вероятно, повезло, что ошибка показывает себя.
BinaryTree *newTree; newTree->insert(0);
Создает указатель на BinaryTree
, который ничего не будет указывать, а затем вы вызываете разыменование его с помощью оператора ->
, что приводит к неопределенному поведению в c ++.
Если предположить, что все остальное в вашей функции корректно (включая реализацию других функций), то правильный путь будет таким, основанным на вашем текущем коде (обратите внимание, что функция возвращает ссылку):
BinaryTree & BinaryTree::operator=(const BinaryTree &myTree)
{
this->insert(0);
this->FillTree(*this, myTree.root);
return *this;
}
НО, я нахожу весьма вероятным, что в вашем коде есть другие ошибки, и вам следует воспользоваться советом других комментаторов и сначала реализовать конструктор копирования.