什么问题/陷阱,必须重写时,必须考虑equals和hashCode?
有很多理由不使用typeid.除了使用type_info(实现定义的行为)的成员之外,通常(总是?)可以使用其他C++语言特性提供类似的功能,例如:重载,虚函数等.
因此,排除依赖于实现定义行为的使用情况,是否有人拥有真实世界的示例哪个typeid是最佳解决方案?
有类似Java的东西equals()吗?要比较对象是否是同一类型?
public boolean equals(Object obj) {
if (obj == null || !(obj instanceof ViewMode)) {
return false;
}
ViewMode dm = (ViewMode) obj;
return dm.width == w
&& dm.h == h
&& dm.b == b
&& dm.f == f;
}
public int hashCode() {
return w ^ h ^ f ^ b ;
}
Run Code Online (Sandbox Code Playgroud)