构造函数与析构函数的调用次序
2012-07-14 20:40
246 查看
我们知道C++类中的构造函数与析构函数几乎是成对出现,构造函数用来初始化类的数据成员,而析构函数的作用主要是完成所需资源的回收。另外两者的调用次序相反,即最先构造的对象最后被析构,最后构造的对象最先被析构。以下用一段简单的代码验证一下它们的调用顺序。
#include <iostream>
using namespace std;
class Stu
{
private:
int num;
public:
Stu(int a):num(a)
{
cout<<"第"<<num<<"个Stu对象的构造函数被调用"<<endl;
}
~Stu()
{
cout<<"第"<<num<<"个Stu对象的析构函数被调用"<<endl;
}
};
int main()
{
cout<<"程序运行时"<<endl;
Stu test[4]={1,2,3,4};
cout<<"退出main函数时"<<endl;
return 0;
}
运行结果是:
验证结论。
#include <iostream>
using namespace std;
class Stu
{
private:
int num;
public:
Stu(int a):num(a)
{
cout<<"第"<<num<<"个Stu对象的构造函数被调用"<<endl;
}
~Stu()
{
cout<<"第"<<num<<"个Stu对象的析构函数被调用"<<endl;
}
};
int main()
{
cout<<"程序运行时"<<endl;
Stu test[4]={1,2,3,4};
cout<<"退出main函数时"<<endl;
return 0;
}
运行结果是:
验证结论。
相关文章推荐
- 类继承时,构造函数和析构函数的调用次序
- 基类子类构造函数与析构函数调用次序
- 构造函数析构函数调用次序
- C++ 构造函数,赋值构造函数,析构函数,赋值构造函数的调用次序
- 构造函数和析构函数的调用次序
- 继承中构造函数和析构函数的调用次序
- 不同情形下 对象的构造函数和析构函数的调用并不相同
- Virtual应用在析构函数和构造函数调用中
- C++中构造函数与析构函数的调用顺序
- [转]什么时候调用构造函数和析构函数
- C++中函数调用中构造函数、析构函数、赋值过程
- 在父类的构造函数和析构函数中都不能调用纯虚函数
- 类继承中构造函数和析构函数地调用
- C++中构造函数和析构函数的调用顺序
- c++深/浅拷贝 && 构造函数析构函数调用顺序练习题
- C++面向对象复习(三)——构造函数与析构函数的调用顺序
- C++学习笔记(7)----类的数组中构造函数和析构函数的调用顺序
- 构造函数和析构函数中调用虚函数有什么问题?
- 在父类的构造函数和析构函数中都不能调用纯虚函数
- 类继承中构造函数和析构函数的调用