未修改之前
#include <iostream.h>
class test
{
public:
test()
{
cout<<"构造函数被调用"<<endl;
}
~test()
{
cout<<"析构函数被调用"<<endl;
}
};
void main()
{
cout<<"MAIN()开始运行"<<endl;
test obj1;
{
cout<<"语句块的开始"<<endl;
test obj2;
cout<<"语句块结束"<<endl;
}
cout<<"MAIN()结束"<<endl;
}
修改后
#include <iostream.h>
class test
{
public:
test()
{
cout<<"构造函数被调用"<<endl;
}
~test()
{
cout<<"析构函数被调用"<<endl;
}
};
void main()
{
cout<<"MAIN()开始运行"<<endl;
test obj1;
//构造函数调用
{
cout<<"obj1语句块的开始"<<endl;
test obj2;
//构造函数调用
cout<<"obj1语句块结束"<<endl;
//析构函数调用
}
test obj3;
//构造函数调用
{
cout<<"obj3语句块的开始"<<endl;
test obj4;
//构造函数调用
cout<<"obj3语句块结束"<<endl;
//析构函数调用
}
cout<<"MAIN()结束"<<endl;
//OBJ1析构函数调用
//OBJ2析构函数调用
}
说明每当对象被定义一次 构造函数就调用一次。
每当一个语句块结束后,就会调用一次析构函数。
当一个对象定义到操作完成后也会调用一次析构函数。