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

标签 c++ function class object

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

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

最佳答案

当您在代码块中声明一个变量时,该变量的生命周期一直持续到代码块结束。变量将在其生命周期结束时被销毁,也就是控制退出该 block 时。

这个的正确名称是自动存储持续时间,尽管有时使用行话“在堆栈上”。

如果你想保留变量中的值,那么你可以返回变量的拷贝(不用担心,编译器通常会对此进行优化)。

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

这项技术需要更多的关注,并且比使用自动变量更复杂;更喜欢使用自动变量,除非你真的不能用它们解决你的问题。

关于c++ - 函数中类的对象会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28801102/

相关文章:

c++ - 从 OpenCV (C++) 中的目录读取多个图像

c++ - 仅使用宏在 header 中定义静态变量

c++ - 传递指针 vector 并删除重复项

python - 是否可以根据某种属性自动生成 getter 和 setter 函数?

c++ - 如何绑定(bind)异步?

MySQL 查询似乎忽略了存储函数中的 WHERE 语句的一部分

javascript - 函数 VS 事件监听器

python - 使用类型和 __slots__ 动态创建类?

Python如何将类函数从实例传递到另一个类

python - 如何在给定基础的情况下恢复类的 mro?