【发布时间】:2019-11-27 13:40:42
【问题描述】:
我来自 C 背景。我曾经分配内存/数组,例如,将其发送到其他地方,并且指针仍然保留在那里,即使在分配它的范围被破坏之后也是如此。
现在,如果我对向量执行相同的操作:初始化,通过引用传递它,然后将该引用保存在某处。在实际创建向量的初始方法超出范围之后,它会被销毁吗?或者因为指向它的指针仍然被保存,所以它会被保留。
【问题讨论】:
-
通常“当引用绑定到临时对象或其子对象时,临时对象的生命周期会延长以匹配引用的生命周期”。请参阅:en.cppreference.com/w/cpp/language/reference_initialization.
-
@vahancho 在这里使用“通常”这个词要非常小心。事实上,它没有发生的次数超过了它发生的次数。
标签: c++ vector allocation