敌人的例子
bool Foo::operator==(const Foo& other) {
return bar == other.bar;
}
chek是否很重要,就像这样的对象一样吗?
bool Foo::operator==(const Foo& other) {
if (this == &other) {
return true;
}
return bar == other.bar;
}
答案 0 :(得分:2)
如果要进行大量比较,那么检查自我平等可能会加快执行速度。在这种情况下,应该对代码进行分析,以查看在比较同一对象时节省了多少时间,以及比较单独变量时占用(浪费)的时间。
答案 1 :(得分:0)
可以想象,这可以使同一对象的比较更快一些,但代价是减慢不同对象的比较。在几乎所有情况下,这都是净损失。
答案 2 :(得分:0)
您在上面的代码中检查两次没有任何意义。但是,在某些情况下,当您使用动态内存时,事情可以快速变化,这可能是有益的。对于您拥有的代码,第一个代码块就足够了。