拷贝构造,构造函数,析构函数的调用顺序

来源:互联网 发布:比较两个数组的差异 编辑:程序博客网 时间:2024/05/16 00:28

#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:public:ABCD abcd1; //c++编译器不知道如何构造abc1ABCD abcd2;const int m;};int doThing(MyE mye1){printf("doThing() mye1.abc1.a:%d \n", mye1.abcd1.getA()); return 0;}int run2(){MyE myE;doThing(myE);   //类的实参去做形参,会调用拷贝构造函数return 0;}//int run3(){printf("run3 start..\n");//ABCD abcd = ABCD(100, 200, 300);//若直接调用构造函数哪//想调用构造函数对abc对象进行再复制,可以吗?//在构造函数里面调用另外一个构造函数,会有什么结果?ABCD(400, 500, 600); //临时对象的生命周期printf("run3 end\n");return 0;}int main(){run2();//run3();system("pause");return 0;}






0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 6s储存空间虚满怎么办 大胸下垂穿婚纱怎么办 美团签约成功后怎么办 拍婚纱照笑不出来怎么办 长得丑拍婚纱照怎么办 失恋了怎么办才能最快走出来 眼镜大了往下掉怎么办 眼镜带着往下掉怎么办 眼镜腿松了怎么办妙招 眼镜框大了总掉怎么办 吃不下饭恶心想吐怎么办 买到苹果翻新机怎么办 欠装修款不给怎么办 老板欠工资跑了怎么办 挖机老板欠工资怎么办 欠工程款耍赖不给怎么办 辞工后不给工资怎么办 工伤仲裁后不给怎么办 离职后不给工资怎么办 离职了不发工资怎么办 饭店欠工资不给怎么办 单位欠工资不给怎么办 离职后工资不发怎么办 暑假工不给工资怎么办 暑假工工资不发怎么办 个人欠钱2万不还怎么办 快递发错地址了怎么办 香烟被快递扣了怎么办 买st股票退市了怎么办 av淘宝看不了了,怎么办 厨房通水道堵了怎么办 皮鞋大了不跟脚怎么办 敞口皮鞋穿大了怎么办 穿皮鞋老掉跟怎么办 皮鞋鞋垫不粘了怎么办 上海拍好车牌后怎么办 补好的牙齿碎了怎么办 狗死了埋浅了怎么办 公租房租满5年后怎么办 买的股票停盘了怎么办 央企重组后员工怎么办