游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: WL07

为什么一般重载=运算符的参数和返回值都是引用?

[复制链接]

6

主题

72

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2010-10-15 17:28:00 | 显示全部楼层

Re:为什么一般重载=运算符的参数和返回值都是引用?

传参数用引用确实是因为效率,因为不需要开辟内存空间,主要是用于自定义的struct和class,内置类型的话效率差异应该不是特别明显。

但是返回值用引用我觉得更多的是因为规范,与内置操作符一致。想想看,a = b,左操作符是a,有操作数是b,而这个表达式最终返回的是a,也就是说返回的值和左值共享同一段内存空间。如果你不返回引用,而返回值的话,返回值会另开一段内存空间,这样返回值和左值则不共用一段内存空间了。

同理,一般+,-,*,/的重载返回值;而+=,-=,*=,/=则是返回引用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-3 07:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表