内存用于在函数内创建对象?
Memory alocated for Creating object inside a function?
因为对象是从同一个类创建的。每个对象都包含在类中定义的变量,但在该类的方法中定义的变量除外。同一对象的函数中的变量是共享内存吗?如果我们有一个函数来创建相同类的对象,则引用将驻留在何处?该参考不是也共享吗?
方法在内存使用方面与任何其他函数没有什么不同:局部变量在执行达到其声明时创建,并且(除非static
(当执行离开块时,它们被销毁,它们的内存被回收。 (最迟在函数返回时会发生这种情况。 与this
对象或其任何成员没有连接。 与方法的类具有相同类型的变量也没有任何区别。
从某种意义上说,这确实使内存"共享":它将迅速回收并(通常(重用。 但这没什么特别的,不要认为它的意义比它更重要:如果一个方法是递归的,或者由多个线程并发调用,则每个副本都有自己的局部变量 - 同样,就像任何其他函数一样。
最后,任何函数或方法都可以动态分配内存;分配对象的生存期和共享可能与用于引用它的变量的生存期和共享无关。
相关文章:
- 使用基类指针创建对象时,缺少派生类析构函数
- 如何创建对象函数指针C++映射?
- 如何获取在 main() 函数中构造的类的创建对象?
- C++递归地在类构造函数中创建对象
- 创建一个函数,该函数使用模板创建类或子类的对象
- 通过向构造函数其他对象引用页面来创建对象
- 创建用户定义的复制构造函数时无法创建对象
- C ++:如何在不创建对象的情况下在主函数中调用方法
- 在递归函数中更有效地创建对象和对象数组?C++
- 从类模板创建对象的工厂函数模板?
- 在创建对象向量时,不为每个对象唯一调用默认对象构造函数
- 如何在主函数之外创建对象?
- 如何发送通过绑定到函数/方法创建的函数对象?
- 内存用于在函数内创建对象?
- 通过显式调用对象的析构函数和构造函数来重新创建对象
- 如何防止构造函数在引发异常时创建对象
- 一般函数中类的概括为基类创建对象代码
- 在成员函数中创建对象
- 在类模板中创建模板函数对象
- 如何创建一个C ++函数,该函数在每次用户输入新数据时创建新对象