#include<iostream>
using namespace std;
class xint
{
private:
int x;
public:
xint(int dt){
x=dt;
cout<<x<<"constructor"<<endl;
}
~xint(){
cout<<x<<"destructor"<<endl;
}
};
xint a(1);
xint b(2);
int f()
{
xint f(7);
cout<<"f"<<endl;
}
xint c(3);
int main()
{
xint d(5);
cout<<"main"<<endl;
f();
}
xint e(6);
根据运算结果可知,先按全局对象的定义顺序执行其构造函数,然后按函数的调用顺序执行局部对象的构造函数和函数体。析构函数按构造函数的逆序执行。