强化训练2--匿名对象的生命周期
来源:互联网 发布:一楼土木人淘宝坑人 编辑:程序博客网 时间:2024/05/16 23:49
//临时对象和匿名对象没有人去接它,编译器马上就析构了
#include<iostream>using namespace std;class ABCD{public:ABCD(int a,int b,int c){this->a = a;this->b = b;this->c = c;printf("ABCD() construct,a:%d,b:%d,c:%d \n",this->a,this->b,this->c);}~ABCD(){printf("~ABCD() construct,a:%d,b:%d,c:%d \n",this->a,this->b,this->c);}int getA(){return this->a;}protected:private:int a;int b;int c;};class MyE{public:MyE():abcd1(1,2,3),abcd2(4,5,6),m(100){cout << "MyD()"<<endl;}~MyE(){cout << "~MyD()"<<endl;}MyE(const MyE &obj):abcd1(7,8,9),abcd2(10,11,12),m(100){printf("MyD(const MyD & obj)\n");}protected:private:ABCD abcd1;//c++编译器不知道如何构造abcd1;先执行这个函数的构造函数ABCD abcd2;const int m;};int doThing(MyE mye1){//printf("doThing() mye1,abcd1,a:%d \n",mye1.abcd1.getA());//有问题一直通过不了printf("doThing() mye1,abcd1,a:%d \n");return 0;}int run3(){printf("run3 star..\n");ABCD(400,500,600);//临时对象的生命周期,直接调用ABCD类的构造函数//临时对象和匿名对象没有人去接它,编译器马上就析构了printf("run3 end..\n");return 0;}int main(){run3();system("pause");return 0;}
匿名对象转正
#include<iostream>using namespace std;class ABCD{public:ABCD(int a,int b,int c){this->a = a;this->b = b;this->c = c;printf("ABCD() construct,a:%d,b:%d,c:%d \n",this->a,this->b,this->c);}~ABCD(){printf("~ABCD() construct,a:%d,b:%d,c:%d \n",this->a,this->b,this->c);}int getA(){return this->a;}protected:private:int a;int b;int c;};class MyE{public:MyE():abcd1(1,2,3),abcd2(4,5,6),m(100){cout << "MyD()"<<endl;}~MyE(){cout << "~MyD()"<<endl;}MyE(const MyE &obj):abcd1(7,8,9),abcd2(10,11,12),m(100){printf("MyD(const MyD & obj)\n");}protected:private:ABCD abcd1;//c++编译器不知道如何构造abcd1;先执行这个函数的构造函数ABCD abcd2;const int m;};int doThing(MyE mye1){//printf("doThing() mye1,abcd1,a:%d \n",mye1.abcd1.getA());//有问题一直通过不了printf("doThing() mye1,abcd1,a:%d \n");return 0;}/*int run3(){printf("run3 star..\n");//这个时候没有创建一个对象ABCD(400,500,600);//临时对象的生命周期,直接调用ABCD类的构造函数//临时对象和匿名对象没有人去接它,编译器马上就析构了printf("run3 end..\n");return 0;}*/int run3(){printf("run3 star..\n");//这个时候创建一个对象ABCD abcd=ABCD(400,500,600);//有对象去接了printf("run3 end..\n");return 0;}int main(){run3();system("pause");return 0;}
0 0
- 强化训练2--匿名对象的生命周期
- 匿名对象的生命周期
- 强化训练3--构造函数中调用构造(产生匿名对象)
- Java的匿名对象的创建和生命周期
- Java的匿名对象的创建,生命周期和应用场景
- 对象的打印和比较对象以及匿名对象和对象的生命周期
- C#强化系列文章四:匿名方法的使用
- C#强化系列文章四:匿名方法的使用
- C# 强化系列文章四:匿名方法的使用
- 类的匿名对象
- Java的匿名对象
- 匿名对象的使用
- 匿名对象的使用
- 匿名对象的使用
- 匿名对象的使用
- 匿名对象的Distinct
- java的匿名对象
- java的匿名对象
- Nginx如何处理一个请求
- 浅学Swift 3.0.1中的Enumerations
- SQL优化(二)
- The sum problem
- AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
- 强化训练2--匿名对象的生命周期
- RxJava
- 大众点评cat系统的搭建笔记
- NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目
- 微信小程序之map地图
- 盘点手机上没用的功能!你讨厌你手机上的什么功能?
- (UTF-8) is different from that specified in page directive(utf-8)
- adb shell 命令获取手机中的运行资源,内存,CPU,dump信息等等
- [题解]bzoj1503(NOI2004)郁闷的出纳员