1.22、类的生命周期

对象的生命周期阶段

  • • 全局对象:在程序启动时(main函数开始前)被创建,直到程序结束时才销毁。它们的存储位置通常在全局数据区,生命周期贯穿整个程序运行期间。
  • • 静态对象
    • • 静态全局对象:类似于全局对象,程序启动时创建,程序结束时销毁。
    • • 静态局部对象:在第一次执行到定义语句时初始化(即第一次进入作用域时创建),之后多次进入该作用域不会重复创建,程序结束时销毁。
  • • 局部自动对象:在进入其作用域(通常是函数或代码块)时创建,离开作用域时销毁。其存储位置在栈区,由栈自动管理。
  • • 动态分配对象(new创建):通过new运算符在堆上分配内存,生命周期从new时开始,直到显式调用delete释放内存为止。如果不释放,则对象一直存在直到进程结束,系统才回收资源。
  • • 临时对象:如函数返回的临时值,生命周期通常在完整表达式结束时销毁,属于自动管理的短暂对象。

总结

对象类型 创建时机 销毁时机 存储位置
全局对象 程序启动时 程序结束时 全局数据区
静态局部对象 第一次进入作用域时 程序结束时 全局数据区
局部自动对象 进入作用域时 离开作用域时 栈区
动态分配对象 new时 显式调用delete时 堆区
临时对象 表达式求值时 表达式结束时 栈区

本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
(加入我的知识星球,免费获取账号,解锁所有文章。)

阅读剩余
THE END