博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【C++】C++引用返回值需谨慎
阅读量:5818 次
发布时间:2019-06-18

本文共 380 字,大约阅读时间需要 1 分钟。

源地址

 引用不像指针那么复杂,又不拷贝空间,一直比较喜欢它。

       于是深入探究C++引用的问题
       殊不知,不知道引用返回值的使用方式有很大的风险
       基础:
              当对象进行值传递时。会调用类的拷贝构造函,常见的,函数形参。=号赋值。
       我进行了如下的实验:
            有一个函数 定义如下:
                       A & func();
            返回一个类的引用
          原来,我都是这样调用的。 A a = func();我相信大部分人都是这么调用
         经过实验发现,这样会调用一次拷贝构造函数
        其实是把返回值返回了一个引用到栈里边,然后变量a又拿栈里边的对象复制了一次
       所以,以后调用引用函数时,要这样调用 A & a = func();
       假如要给别人写类包,尽量避免引用返回,因为错误的调用会导至堆内存的数据无法释放。

转载于:https://www.cnblogs.com/onlywish/p/4189033.html

你可能感兴趣的文章
通过vb.net 和NPOI实现对excel的读操作
查看>>
TCP segmentation offload
查看>>
java数据类型
查看>>
数据结构——串的朴素模式和KMP匹配算法
查看>>
FreeMarker-Built-ins for strings
查看>>
验证DataGridView控件的数据输入
查看>>
POJ1033
查看>>
argparse - 命令行选项与参数解析(转)
查看>>
一维数组
查看>>
Linux学习笔记之三
查看>>
CentOS 6.6 FTP install
查看>>
图解Ajax工作原理
查看>>
oracle导入导出小记
查看>>
聊一聊log4j2配置文件log4j2.xml
查看>>
NeHe OpenGL教程 第七课:光照和键盘
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
Php实现版本比较接口
查看>>
删除设备和驱动器中软件图标
查看>>
第四章 TCP粘包/拆包问题的解决之道---4.1---
查看>>
html语言
查看>>