对象生存期也称对象生命周期,是指对象从被创建到被释放的时间。按生存期的不同,对象可分为局部对象、静态对象、全局对象和动态对象4种。
1.局部对象
局部对象是指定义在一个程序块或函数体内的对象,包括形参。当定义对象时,系统自动调用构造函数,该对象被创建,对象的生存期开始。当退出该函数体或程序块时,调用析构函数,释放该对象,对象的生存期结束。
#include <iostream>
using namespace std;
class A //测试对象生存期的类
{
public:
A(int i):id(i) //构造函数
{
cout << "id="<<id<<"对象被创建了" << endl;
}
A(const A& ca)//拷贝构造函数
{
id = ca.id;
cout <<"拷贝构造: "<<"id = " << id << "对象被创建了" << endl;
}
~A()
{
cout << "id=" << id << "析构,对象被销毁!" << endl;
}
private:
int id; //编号,用于区分不同的对象
};
void test1(A b)
{
cout << "进入,test1()" << endl;
cout << "test1()结束" << endl;
}
void test2()
{
cout << " 进入,test2()" << endl;
A c(3);
cout << " test2()结束" << endl;
}
int main()
{
cout << "进入,main()" << endl;
A a(1);
test1(a);
test2();
cout << "main()结束" << endl;
return 0;
}
程序执行结果如下: