刚开始做运算符重载,我的老师没有深入研究它们,所以我想知道为什么前缀/后缀递增/递减的返回类型不同。当我看到前缀重载时,返回类型写为 Type&,但后缀的返回类型写为 Type。我做了没有 & 的前缀,并且函数都运行正常。返回类型是否会影响任何东西,或者它只是区分前缀和后缀的另一种方式?
最佳答案
原因是允许链接:
++ ++ ++ i;
要允许 i
增加三倍,++
必须返回引用并获取引用。如果它返回一个临时拷贝,第二个 ++
将增加...临时拷贝(事实上,一个临时拷贝不会绑定(bind) &
,所以它会甚至不编译)。
关于c++ - 为什么 Prefix Increment Overload 返回的是 Type 而不是 Type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463789/