函数中类的对象会发生什么

sha*_*e14 0 c++ class function object

如果我创建一个类,并将其对象放在一个函数*中.一旦函数结束了我创建的对象发生了什么?它被删除了吗?

编辑:*我从主要调用该函数

M.M*_*M.M 5

在代码块中声明变量时,该变量的生命周期一直持续到代码块结束.变量将在其生命周期结束时被销毁,即控制退出该块时.

正确的名称是自动存储持续时间,尽管有时会使用术语"在堆栈上".

如果你想保留变量中的值,那么你可以返回变量的副本(不用担心,编译器通常会优化它).

也可以使用手动管理的生命周期创建对象.在这种情况下,对象没有名称,您通过句柄管理它们,并且在您调用delete其句柄之前它们的生命不会结束.

这种技术需要更多的关注,它比使用自动变量更复杂; 我更喜欢使用自动变量,除非你真的无法解决它们的问题.