返回值优化
来源:互联网 发布:php乘法表打印txt文档 编辑:程序博客网 时间:2024/05/16 07:46
通过传值方式返回要创建新对象时,应注意使用的形式。例如在operator+ :
return Integer( left.i + right.i ); (1)
与
Integer tmp( left.i + right.i ); (2)return tmp;
对于(2),将发生三件事。首先,创建tmp对象,包括构造函数的调用。然后拷贝构造函数把tmp拷贝到外部返回值的存储单元里。最后,当tmp在作用于的结尾时调用析构函数。
对于(1),返回临时对象的方式,是不一样的。编译器直接把这个对象创建在外部返回值的内存单元。因为不是真正创建一个局部对象,所以仅需要一个普通构造函数调用(不需要拷贝构造函数),且不会调用析构函数。这种方法不需要什么花费,因此效率很高。这种方式常被称为返回值优化。
[C++编程思想(1)P279]
- 返回值优化
- 返回值优化
- 返回值优化问题
- 返回值优化
- 返回值优化
- 返回值优化问题
- 返回值优化
- 命名返回值优化
- 返回值优化RVO
- C++返回值优化
- C++ 返回值优化
- 返回值优化
- C++返回值优化
- 返回值优化
- C++编译器优化-返回值优化
- C++优化--按值返回和返回值优化
- C++的返回值优化
- 编译器的返回值优化
- WINDOWS系统 + Apache +PHP5 +Zend + MySQL + phpMyAdmin安装方法
- asp.net Ajax--Calendar控件使用
- C语言高效编程的几招
- 实现DataGridView中行的上下移动(C#实现)
- 集群中命令的执行.
- 返回值优化
- ANT 安装使用及build.xml文档模板
- OpenSolaris上Qemu使用指南
- 调试时,出现" 将截断字符串或二进制数据"。
- 长期奋战在电脑前的技术人 必须要看的图(转自51cto)
- 使用嵌套 Repeater 控件和 Visual C# .Net 显示分层数据
- php+mysql乱码问题
- Check Javascript supported version
- 把Doc文档转换成rtf格式 [C#]