相关疑难解决方法(0)

Java的equals()和C++的operator ==有什么区别?

关于使用typeid is C++的问题中,我建议它可以用来比较对象比较中的类型.我没有看到它做得太多,但我考虑到了Java equals.

再看看Java,似乎就是这种情况:有人说应该比较两个对象的实际类,有人说 instanceof是正确使用的工具,可能是双重调度.当然,有两种情况中的一种最终更合适,但至少考虑两种选择.

在C++,OTOH中,我几乎找不到比较实际类型的代码.在大多数情况下,使用双重调度(with dynamic_cast),我找不到任何坚持快速类型比较的人在相等检查开始时做正确的事情.

我想知道为什么多态类型比较的问题在Java中有两个可接受的解决方案,而在C++中,只有一个似乎被认为是最佳实践?是否存在重大的技术差异,或者只是不同的方法?

注意:我的主张是基于印象而非具体知识.如果它们是错的并且Java和C++在这方面确实相似 - 或者由于上述原因之外的其他原因而不同,那么它显然是一个可接受的答案.

c++ java language-comparisons equals equality-operator

10
推荐指数
1
解决办法
2367
查看次数