【发布时间】:2013-07-16 16:37:40
【问题描述】:
在函数中,如果我有一个向量作为参数传递,并且函数中有一个对象是使用自动存储持续时间创建的,如果该对象被推到向量(参数)上,该对象不会被销毁直到向量是?
【问题讨论】:
标签: c++ memory-management automatic-storage
在函数中,如果我有一个向量作为参数传递,并且函数中有一个对象是使用自动存储持续时间创建的,如果该对象被推到向量(参数)上,该对象不会被销毁直到向量是?
【问题讨论】:
标签: c++ memory-management automatic-storage
你不能将那个对象“推”到一个向量上。您正在将对象的 副本 推送到向量上(除非您有一些神秘的东西,例如参考包装器的向量)。所以一切都很好。
(当然还有其他方法可以让设计不佳的类无法正确管理更多动态对象的所有权,但这是一个普遍问题,并非针对您的问题。)
【讨论】:
std::vector——以及所有标准容器——存储对象的副本。标准容器中的对象的要求之一是它们是可复制构造的。
【讨论】: