1.动态分配的对象的析构函数
1 class man{
2 public:
3 man(){
4 cout<<"man begin"<<endl;
5 };
6 ~man(){
7 cout<<"man end"<<endl;
8 }
9 };
10
11 int _tmain(int argc, _TCHAR* argv[])
12 {
13 man *m = new man();
14 return 0;
15 }
输出为 :
man begin
动态分配的类必须在执行delete函数后才执行析构函数;
在13行后加入 delete m;
输出为:
man begin
man end
2.局部的值对象的析构函数
局部对象的析构函数执行是在其所在的{}结束时执行
1 class man{
2 public:
3 man(){
4 cout<<"man begin"<<endl;
5 };
6 ~man(){
7 cout<<"man end"<<endl;
8 }
9 };
10 void runMan()
11 {
12 man m;
13 cout <<"man run"<<endl;
14 }
15 int _tmain(int argc, _TCHAR* argv[])
16 {
17 runMan();
18 return 0;
19 }
输出结果为:
man begin
man run
man end
假如修改runMan()的实现形式为
1 void runMan()
2 {
3 {
4 man m;
5 }
6 cout <<"run man"<<endl;
7 }
输出结果为:
man begin
man end
man run
时间: 2024-10-06 04:38:24