如果我创建一个类,并在一个函数中创建它的对象*。一旦函数结束,我创建的对象会发生什么?它会被删除吗?
编辑: *我从主函数调用该函数
最佳答案
当您在代码块中声明一个变量时,该变量的生命周期一直持续到代码块结束。变量将在其生命周期结束时被销毁,也就是控制退出该 block 时。
这个的正确名称是自动存储持续时间,尽管有时使用行话“在堆栈上”。
如果你想保留变量中的值,那么你可以返回变量的拷贝(不用担心,编译器通常会对此进行优化)。
也可以创建具有手动管理生命周期的对象。在这种情况下,对象没有名称,您通过句柄管理它们,并且它们的生命不会结束,直到您对其句柄调用 delete
。
这项技术需要更多的关注,并且比使用自动变量更复杂;更喜欢使用自动变量,除非你真的不能用它们解决你的问题。
关于c++ - 函数中类的对象会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28801102/