临时变量,局部变量的return操作
来源:互联网 发布:股票泛微网络复牌时间 编辑:程序博客网 时间:2024/05/21 09:26
如果函数返回值是一个对象,要考虑 return 语句的效率。例如
return String(s1 + s2);
这是临时对象的语法,表示“创建一个临时对象并返回它” 。不要以为它与“先创建一个局部对象 temp 并返回它的结果”是等价的,如
String temp(s1 + s2);
return temp;
实质不然,上述代码将发生三件事。首先,temp 对象被创建,同时完成初始化;然后拷贝构造函数把 temp 拷贝到保存返回值的外部存储单元中;最后,temp 在函数结束时被销毁(调用析构函数) 。然而“创建一个临时对象并返回它”的过程是不同的,编译器直接把临时对象创建并初始化在外部存储单元中,省去了拷贝和析构的花费,提高了
效率。
类似地,我们不要将
return int(x + y); // 创建一个临时变量并返回它
写成
int temp = x + y;
return temp;
由于内部数据类型如 int,float,double 的变量不存在构造函数与析构函数, 虽然该 “临时变量的语法”不会提高多少效率,但是程序更加简洁易读。
return String(s1 + s2);
这是临时对象的语法,表示“创建一个临时对象并返回它” 。不要以为它与“先创建一个局部对象 temp 并返回它的结果”是等价的,如
String temp(s1 + s2);
return temp;
实质不然,上述代码将发生三件事。首先,temp 对象被创建,同时完成初始化;然后拷贝构造函数把 temp 拷贝到保存返回值的外部存储单元中;最后,temp 在函数结束时被销毁(调用析构函数) 。然而“创建一个临时对象并返回它”的过程是不同的,编译器直接把临时对象创建并初始化在外部存储单元中,省去了拷贝和析构的花费,提高了
效率。
类似地,我们不要将
return int(x + y); // 创建一个临时变量并返回它
写成
int temp = x + y;
return temp;
由于内部数据类型如 int,float,double 的变量不存在构造函数与析构函数, 虽然该 “临时变量的语法”不会提高多少效率,但是程序更加简洁易读。
阅读全文
0 0
- 临时变量,局部变量的return操作
- 临时变量,局部变量的return操作
- [c/c++]临时变量、局部变量,return的效率
- return临时变量的问题
- return 局部变量
- return 局部变量
- 关于return一个局部变量
- java开发C语言编译器:jvm的return指令以及局部变量的操作
- return 局部变量合法,函数返回值的生命周期
- TempDB 中表变量和局部临时表的对比
- TempDB 中表变量和局部临时表的对比
- C语言中返回局部变量或临时变量的地址的错误
- C/C++ waring:返回局部变量或临时变量的地址
- C++的临时变量
- 变量的分类:成员变量、局部变量
- 局部临时表 全局临时表 表变量
- 局部临时表 全局临时表 表变量
- C语言 子函数return(局部变量&局部指针&栈)机制
- 关于typedef的用法总结
- easyui treegrid按需显示垂直滚动条问题
- 单链表的逆置
- Kotlin(1)
- 深度学习笔记
- 临时变量,局部变量的return操作
- ionic2打包安卓报错:Error: Could not find an installed version of Gradle either in Android Studio
- 重装MySQL启动失败
- 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?
- javascript中的AJAX和如何封装AJAX
- API网关介绍
- 如何在anaconda上安装pygame
- 悬浮的view在横竖屏切换时如何改变大小?
- 函数返回值—返回局部变量