C++ 重载==不适用于二叉树 bool-Tree::operator==(const-Tree&that)const{ 返回节点::is_equal(this->getRoot(),that.getRoot()); } 布尔树::操作员=(const Tree&that)const{ return!Node::is_equal(this->getRoot(),that.getRoot()); } int main(){ Tree*t=新树(); 常量树*t2=新树(); 不能

C++ 重载==不适用于二叉树 bool-Tree::operator==(const-Tree&that)const{ 返回节点::is_equal(this->getRoot(),that.getRoot()); } 布尔树::操作员=(const Tree&that)const{ return!Node::is_equal(this->getRoot(),that.getRoot()); } int main(){ Tree*t=新树(); 常量树*t2=新树(); 不能,c++,C++,In Tree*t=newtree(); 常量树*t2=新树(); 不能In Tree*t=newtree(); 常量树*t2=新树(); 你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗似乎同意:在C++社区中,将操作符函数定义为朋友函数是一种常见的做法,包括,+,-,*,/,^^函数……@YunfeiChen是的,我个人总是将它们定义为朋友函数,在答案的第一个版本中,我建议这样做,因为我不知道也可以使用

In

Tree*t=newtree();
常量树*t2=新树();
不能In

Tree*t=newtree();
常量树*t2=新树();

你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗,你现在能比较指针吗似乎同意:在C++社区中,将操作符函数定义为朋友函数是一种常见的做法,包括,+,-,*,/,^^函数……@YunfeiChen是的,我个人总是将它们定义为朋友函数,在答案的第一个版本中,我建议这样做,因为我不知道也可以使用类成员。我通常看到
操作符==
实现为朋友函数,但我看不出为什么需要它ED这样做,而不是作为一个类成员。维基百科似乎同意:在C++社区中,将操作符函数定义为朋友函数是一种常见的做法,包括:,+,-,*,/,^^函数……@YunfeiChen是的,我个人总是将它们定义为朋友函数,在答案的第一个版本中,我建议这样做,因为我不知道也可以使用类成员。
bool Tree::operator==(const Tree &that) const {
    return Node::is_equal(this->getRoot(), that.getRoot());
}

bool Tree::operator!=(const Tree &that) const {
    return !Node::is_equal(this->getRoot(), that.getRoot());
}


int main(){
    Tree *t = new Tree();
    const Tree *t2 = new Tree();
    cout << (t == t2) << endl;
    return 0;
}
Tree *t = new Tree();
const Tree *t2 = new Tree();
cout << (t == t2) << endl;
Tree t, t2;

cout << (t == t2) << endl;
Tree *t = new Tree();
const Tree *t2 = new Tree();
cout << (*t == *t2) << endl;