23-临时对象
来源:互联网 发布:电脑是怎么储存数据的 编辑:程序博客网 时间:2024/05/14 16:41
1、
mi = 306583632是个随即值
2、
3、
#include <stdio.h>class Test { int mi; void init(int i) { mi = i; }public: Test(int i) { init(i); } Test() { init(0); } void print() { printf("mi = %d\n", mi); }};int main(){ Test t; t.print(); Test(10).print();//直接调用构造函数 就会产生一个临时对象,作用于仅为该条语句,结束后释放 return 0;}
4、
5、
6、
#include <stdio.h>class Test{ int mi;public: Test(int i) { printf("Test(int i) : %d\n", i); mi = i; } Test(const Test& t) { printf("Test(const Test& t) : %d\n", t.mi); mi = t.mi; } Test() { printf("Test()\n"); mi = 0; } int print() { printf("mi = %d\n", mi); } ~Test() { printf("~Test()\n"); }};Test func(){ return Test(20);}int main(){ Test t = Test(10); // ==> Test t = 10; //优化后 // 1、生成临时对象, //2、用临时对象初始化 t对象, //3调用拷贝构造函数,但是最终并没有调用拷贝构造函数,原因是编译器进行优化减少临时对象的产生。 //这种方法会调用两次构造函数,影响效率 Test tt = func(); // ==> Test tt = Test(20); ==> Test tt = 20; //编译器进行优化,没有产生临时对象, t.print(); tt.print(); return 0;}
阅读全文
0 0
- 23-临时对象
- 临时对象
- 临时对象
- 临时对象
- 临时对象
- 临时对象
- 临时对象
- 临时对象
- 临时对象
- 临时对象研究手记
- 删除临时对象
- C++中的临时对象
- 临时对象生命周期问题
- c++临时对象
- C++中的临时对象
- C++中的临时对象
- c++临时对象
- 临时对象问题
- 深入理解Java虚拟机(三)-----类文件结构和类加载机制
- go语言中的defer、panic、recover处理异常
- 1010 三角形与星号加强版
- (转载)mysql中文编码解决方法
- android wifi开发
- 23-临时对象
- 多key业务,数据库水平切分架构一次搞定
- Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程
- 防止网页被盗用 网页加密完全攻略
- springmvc基础
- CUDA进阶第二篇:巧用PTX
- 快速排序--递归
- Android Studio2.0 教程从入门到精通MAC版
- ./include/caffe/common.hpp:4:32: fatal error: boost/shared_ptr.hpp: 没有那个文件或目录