C++中对象生存周期

    在C++中,我们所使用的的对象都有严格的生存周期。所谓的对象生存周期是指对象从创建开始到被释放为止的时间。对于静态内存中存储的局部static对象、类static数据成员以及定义在任何函数之外的变量,全局对象(任何函数之外的对象)在程序启动时分配,在程序结束时销毁;对于局部static对象、类static对象在第一次使用前分配内存,在程序结束时销毁。
    对于栈内存,用来保存定义在函数内的非static对象。对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销毁,分配在静态或栈内存中的对象由编译器自动创建和销毁。
    除了静态内存和栈内存,每个程序还拥有一个内存池。这部分内存被称作自由空间或堆。程序用堆来存储动态分配的对象(程序运行时分配的对象)。动态内存管理是通过一对运算符来完成的:new在动态内存中为对象分配空间并返回一个指向该内存对象的指针;delete接受一个动态对象的指针,销毁该对象,并释放与之关联的内存。

你可能感兴趣的:(C++中对象生存周期)