废话不多,直接上代码
#include<bits/stdc++.h>using namespace std;class Demo{private:int id;public:Demo(int);~Demo(void);};Demo::Demo(int x){id=x;cout << "id=" << id << ends << "Constructed" << endl;}Demo::~Demo(void){cout<<"id="<<id<<ends<<"Destructed"<<endl;}Demo d1(1);//全局对象,main函数执行前就会有输出void func(void){static Demo d2(2);//静态局部对象,函数执行完毕后不会消亡Demo d3(3);//局部对象,函数执行完毕后自动消亡cout<<"End Func"<<endl;}int main(void){Demo d4(4);//初始化d4=6;//调用类型转换构造函数,创建一个临时对象6并进行类型转换赋给对象d4,赋完后自动消亡cout<<"Main"<<endl;{Demo d5(5);//main中的局部对象,出了大括号自动消亡}func();//调用函数cout<<"End Main"<<endl;return 0;//程序结束,未消亡的对象按代码自下而上的顺序依次消亡}/*id=1 Constructedid=4 Constructedid=6 Constructedid=6 DestructedMainid=5 Constructedid=5 Destructedid=2 Constructedid=3 ConstructedEnd Funcid=3 DestructedEnd Mainid=6 Destructedid=2 Destructedid=1 Destructed*/
