c++函数返回对象的引用问题?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

c++函数返回对象的引用问题?

2016-03-09 15:16:10 1579 1

string& Func(string& foo)
{

return foo;

}
这个函数返回一个string的引用,我觉得调用它的时候会产生一个临时的引用变量,然后这个临时的引用变量绑定到foo上,对吗? 还是不会产生这个临时引用变量,直接返回foo?

比如下面这句赋值语句:

string foo;
string s = Func(foo);
等价于下面这两句:

string& temp = foo; //一个临时的引用变量绑定到foo上
string s = temp;
我理解的对吗? 返回引用其实还是会产生一个临时的引用变量吧(一个指针的大小),只不过用引用避免了对象的拷贝对吧? 不对的话求大大指出哪里理解的不对。。。

但如果返回一个临时的引用变量的话,又可以对它取地址这又怎么回事? 比如:

cout << &Func(foo);
这个临时变量应该是个右值才对? 难道对这个临时引用变量的所有操作都是对它引用的对象的操作?
或者说压根就不会生成这个临时引用变量,所有的操作都是在函数返回的对象上的操作? - - 晕了,真心求指出我的错误!!!

C++
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 18:56:14

    string& Func(string& foo)
    {

    return foo;

    }
    这个函数返回一个string的引用,我觉得调用它的时候会产生一个临时的引用变量,然后这个临时的引用变量绑定到foo上,对吗?

    不对。
    还是不会产生这个临时引用变量,直接返回foo?

    对。
    比如下面这句赋值语句:

    string foo;
    string s = Func(foo);
    等价于下面这两句:

    string& temp = foo; //一个临时的引用变量绑定到foo上
    string s = temp;
    我理解的对吗?


    返回引用其实还是会产生一个临时的引用变量吧(一个指针的大小),只不过用引用避免了对象的拷贝对吧? 不对的话求大大指出哪里理解的不对。。。


    但如果返回一个临时的引用变量的话,又可以对它取地址这又怎么回事? 比如:

    cout << &Func(foo);
    这个临时变量应该是个右值才对?

    显然是左值,你的Func都返回string&了,那就是string&。只有返回string&&的时候才是右值。而且不管左值右值都是可以取地址的。
    难道对这个临时引用变量的所有操作都是对它引用的对象的操作?

    0 0
相关问答

40

回答

[@徐雷frank][¥20]什么是JAVA的平台无关性

大河人家 2018-10-29 23:55:20 144728浏览量 回答数 40

53

回答

OSS C/C++ SDK分享交流区

否极泰来 2015-06-15 17:05:09 48067浏览量 回答数 53

3

回答

安全狗VS云锁

ap0453m0g 2014-11-09 16:20:00 15594浏览量 回答数 3

10

回答

windows版本oss c sdk如何上传和下载包含中文名的文件

yjseu 2015-11-20 17:14:30 15949浏览量 回答数 10

1

回答

【开源分享】-4期 Notepads 一款国人开发的UWP超好用文本编辑器

montos 2020-05-06 13:34:43 28968浏览量 回答数 1

58

回答

技术入门问答集锦,涉及多种技术方向,解决新人学习困惑

管理贝贝 2016-08-03 10:13:27 52756浏览量 回答数 58

4

回答

上传到OSS的文件md5hash值如何获取?!!

asker 2015-08-05 16:52:10 21253浏览量 回答数 4

38

回答

【论战!】访问压力大,你会选择升级ECS配置or选择再买1台ECS做负载均衡SLB

qilu 2014-12-25 17:32:40 20809浏览量 回答数 38

12

回答

电信云VS阿里云

米蛋 2013-12-13 23:25:52 15984浏览量 回答数 12

23

回答

【云服务器分享】网站访问速度快才是硬道理

dreamdoo 2012-10-15 10:15:02 85369浏览量 回答数 23
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载