【发布时间】:2015-11-02 00:52:48
【问题描述】:
如果我使用 const 引用另一个成员, 这个引用是否有可能失效?
class Class {
public:
const int &x{y};
private:
int y;
};
例如,当我在向量中使用此类的实例时
在push_back 之后增加了它的容量。
根据标准,所有迭代器和引用都无效,如果
向量必须增加其容量。之后引用仍然有效吗?
【问题讨论】:
-
如果您可以将其推入向量并在您认为的位置设置
x点,我会感到惊讶。 -
不应该对每个新插入的
Class实例进行回推吗?数据将被复制到向量中,其中 x 指向新的 y 位置。 -
如果您在
push_back()之前获取了引用,它不会指向向量内的那个元素。push_back()复制一份。 -
这实际上是关于被引用的值而不是引用本身的问题。
标签: c++ reference member getter invalidation