您的位置:首页 > 编程语言 > C语言/C++

[C++基础]008_类的构造函数和析构函数

2012-10-09 00:47 302 查看
#include<iostream>
using namespace std;

class Human{
public:
Human(){
cout<<"constrct"<<endl;
}
~Human(){
cout<<"destruct"<<endl;
}
private:
int age;
};

int main(){
Human human;

Human *humanPtr;
humanPtr = new Human();
delete humanPtr;

system("pause");
return 0;
}


上面的代码输出 什么呢?如下:

constrct
constrct
destruct
请按任意键继续. . .


为毛只有一个destruct呢?难道第一个对象不析构吗?不是的!在main函数执行return的时候,析构函数就会被调用了.

不信,看如下代码:

#include<iostream>
using namespace std;

class Human{
public:
Human(){
cout<<"constrct"<<endl;
}
~Human(){
cout<<"destruct"<<endl;
}
private:
int age;
};

int test(){
Human human;
return 0;
}

int main(){

test();

Human *humanPtr;
humanPtr = new Human();
delete humanPtr;

system("pause");
return 0;
}


输出如下:

constrct
destruct
constrct
destruct
请按任意键继续. . .


看到了吧,在调用test()之后,析构函数被调用了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: