当我在函数内创建一个对象时,它应该在函数存在时自动删除。例如当 getFoo() 退出时,对象 F 应该被自动删除。然而,当我们调用 getFoo 时,我们仍然能够访问 F。如何?

     Foo getFoo()
     {    Foo F;
          return F;
     }

最佳答案

您没有访问在函数内部创建的对象。在从函数返回之前,在堆栈上创建一个拷贝。当然,在函数范围内创建的对象在函数返回时被销毁。通过销毁,我的意思是它所在堆栈上的位置不再有效。

关于c++ - 返回在函数内部创建的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39794365/

10-17 01:56