楼主:
HwangTW (谷歌翻译王)
2020-06-09 09:44:52开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VC++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
iostream
问题(Question):
if中==与=的差别
喂入的资料(Input):
{ 4,4,5,5,6,6,6,7,7,7,8,8 }
预期的正确结果(Expected Output):
7
错误结果(Wrong Output):
11
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
正确的:https://glot.io/snippets/fo6kxy21bw
错误的:https://glot.io/snippets/fo75qt5ijj
还请赐教,我还真的不知道为何会有这两种写法(汗
补充说明(Supplement):
这两者的差别在于 overload 的形式, 看到 operator=() on primitive type 你完全可以确定被呼叫的实体是哪个, 但是 operator==() 你就要同时考虑两个算子,要判断被呼叫的实体是哪个就需要更多资讯才行