【你问我答】C++将返回值为引用有什么作用?

问题描述:

C++将返回值为引用有什么作用?

回答有奖:

选取一位认真回答问题的牛友,赠送200牛币!
▶回答尽量有自己的思考,不要单纯的只是复制粘贴定理定义,或者他人blog哦~

你问我答问题汇总:点击进入
关注你问我答栏目:点击关注

你问我答 - 答问题,成大佬,拿牛币!
你问我答是牛客新栏目,每周1期几个问题,
牛友在问题贴下留下自己的知识,经验与见解,
帮助更多牛友了解更多技术相关知识!
#悬赏##C/C++#
全部评论
如果不返回引用,而且以值返回的话,返回的是变量的一份临时拷贝,有效率的影响,用引用返回的话,不需要有返回值临时的拷贝,相当于直接把返回值的地址返回去,因为引用的底层实现是按照指针实现的,所以不要返回函数局部变量的引用,也就是栈上空间的地址
3 回复
分享
发布于 2019-11-12 16:03
对于简单类型,如int,double等,引用是没有太大意义的。返回值是一个引用主要用在复合类型上,个人认为主要有两点作用,第一:使用引用避免返回值的一次构造过程(一般来说没有返回值声明引用,现在的编译器也会改为引用,称为返回值优化),第二点是可以避免返回时的切割问题,比如返回如果是一个派生类,不声明引用你用基类去接,此时就会造成切割,丢失掉了派生类的信息。另外,返回值如果是常引用,还可以避免编程时的一些小问题!
点赞 回复
分享
发布于 2019-11-12 15:59
小红书
校招火热招聘中
官网直投
1.通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。 2.C++ 函数可以返回一个引用,方式与返回一个指针类似。 3.当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。
点赞 回复
分享
发布于 2019-11-12 16:05
比如运算符重载=
点赞 回复
分享
发布于 2019-11-12 23:23
如果不是返回一个变量的引用,则一定会生成一个临时变量。 好处1、使用引用当作函数参数和返回值,效率更高,在内存中不产生返回值的副本;2、可用于左值运算 注意 当返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。
点赞 回复
分享
发布于 2019-11-13 17:38
返回值是非引用时,编译器会为返回值分配用于保存数值的临时变量;所以返回值为引用,编译器会优化程序代码,避免临时变量的生成,减少对象构造和析构的消耗,提高程序性能。
点赞 回复
分享
发布于 2019-11-17 17:42

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务