函数的返回值是引用

来源:互联网 发布:2016西决g6知乎 编辑:程序博客网 时间:2024/05/17 04:23

传智扫地僧课程学习笔记。


C++引用使用时的难点:

当函数返回值为引用时

若返回栈变量

不能成为其它引用的初始值

不能作为左值使用

若返回静态变量或全局变量

可以成为其他引用的初始值

即可作为右值使用,也可作为左值使用

上面是老师笔记中的总结,

我的理解就是,函数返回值的生命周期,

比如栈上的变量,就是临时的,故不适合借出使用,


对于接返回值得是普通变量,就相当于给它拷贝了一份值,

对于接返回值的是引用,这就相当于托管了返回的那个变量,而那个变量若是被释放了,就可能会内存污染,


对于函数返回引用作为左值的情况,

理解这个就抓住一点,常量不能作为左值,

普通函数返回不能作左值,是因为返回的是一个数值,

而引用返回,就可以代表一个变量,一个有内存地址的地方,



这里还只是基础数据类型引用的返回,

后面还要讲复杂数据类型引用的返回,

0 0