c++ - 为什么 Prefix Increment Overload 返回的是 Type 而不是 Type?

标签 c++ operator-overloading prefix postfix-operator

刚开始做运算符重载,我的老师没有深入研究它们,所以我想知道为什么前缀/后缀递增/递减的返回类型不同。当我看到前缀重载时,返回类型写为 Type&,但后缀的返回类型写为 Type。我做了没有 & 的前缀,并且函数都运行正常。返回类型是否会影响任何东西,或者它只是区分前缀和后缀的另一种方式?

最佳答案

原因是允许链接:

++ ++ ++ i;

要允许 i 增加三倍,++ 必须返回引用并获取引用。如果它返回一个临时拷贝,第二个 ++ 将增加...临时拷贝(事实上,一个临时拷贝不会绑定(bind) &,所以它会甚至不编译)。

关于c++ - 为什么 Prefix Increment Overload 返回的是 Type 而不是 Type?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463789/

相关文章:

c++ - SCTP recvmsg返回EFAULT(错误地址)

c++ - OpenCV 的 findCirclesGrid 找不到圆圈网格

java - 创建 SOAP 消息 : NAMESPACE_ERR An attempt is made to create or change an object in a way which is incorrect with regard to namespaces

javascript - 我可以重载 JavaScript 的索引运算符吗?

c++ - 重载 operator<< 和 operator!=

rest - 在 CakePHP 中使用带有 RESTful 路由的路由前缀

xml - 将 XSLT 输入文档前缀映射到首选值

c++ - 计时: How can I calculate a millsecond duration from two high resolution time points?

c++ - 运算符 *= 在 C++ 中重载

c++ - 是否可以通过运算符重载按索引分配用户定义的数组? - C++