effective c++ 条款20(用const引用代替值传递)
来源:互联网 发布:菲尔普斯 孙杨 知乎 编辑:程序博客网 时间:2024/06/16 22:29
代码如下:
当执行如下代码时
内部执行过程如下;
简而言之:效率低下
解决办法
此时不会调用任何构造和析构函数,执行效率高
const引用还可以防止“切割问题”
当执行以下函数时
wwsb会被转换为window,那么子类中的所有特征信息就被切除,所以此时执行的是window的display,而不是子类的display
解决办法也是传const引用。
除以上两个问题之外,如果拷贝构造函数的形参是值传递,那么会造成拷贝构造函数的无限调用,引起栈溢出。
0 0
- effective c++ 条款20(用const引用代替值传递)
- Effective C++--条款20:适当地用pass-by-reference-to-const代替pass-by-value
- 宁以const引用传递代替按值传递(内置类型除外)
- effective c++:条款21: 尽可能使用const
- 【Effective C++】条款03-尽可能使用const
- Effective C++:条款03:尽可能使用const
- [Effective C++]条款03:尽可能使用const
- Effective C++--条款03:尽可能使用const
- C++之值传递、指针传递和引用传递---补充(4)《Effective C++》
- 《Effective C++》资源管理:条款20-条款21
- Effective C++读书笔记---宁以传递const引用替换值传递
- Effective C++ 条款20:尽量用传引用替换传值
- Effective C++:条款20:宁以 pass-by-reference-to-const替换pass-by-value
- 读书笔记《Effective C++》条款20:宁以pass-by-reference-to-const替换pass-by-value
- Effective C++:条款1:尽量用const和inline而不用#define
- 《Effective C++》学习笔记条款03 尽可能使用const
- Effective C++——》条款3:尽可能使用const .
- 读书笔记《Effective C++》条款03:尽可能使用const
- angularjs 注入报错 Error: [$injector:unpr]
- python解方程组
- 【笔记】数据库--形式化关系查询语言
- Caffe:Win10下测试自己制作的数据集
- 【R语言学习笔记】关于提取各类模型值的意外发现
- effective c++ 条款20(用const引用代替值传递)
- 解决IntelliJ Idea 集成TortoiseSVN 时找不到svn.exe
- Activity的LaunchMode导致调用系统相册选取图片立即返回RESULT_CANCELED,data为null
- 6使用隐式意图启动系统应用(启动浏览器+启动短信编写界面)
- fork 函数继承
- Leetcode Algorithm 072. Edit Distance
- Python学习之字符编码
- 学编程的人不能不看的好文章
- Java线程之fork/join框架