这个构造函数初始值设定项是否会导致悬空引用?

时间:2012-05-25 10:45:47

标签: c++ reference dangling-pointer

我正在学习Stanley B. Lippman的C ++ Primer第4版。在第12.4.1节中,当作者讨论构造函数初始值设定项时,他给出了这个例子:

class ConstRef {
  public:
    ConstRef(int ii);
  private:
    int i;
    const int ci;
    int &ri;
};
// OK: explicitly initialize reference and const members.
ConstRef::ConstRef(int ii): i(ii), ci(i), ri(ii) { }

我怀疑这可能导致悬挂引用ri指向ii,这是暂时的。我是对的吗?

1 个答案:

答案 0 :(得分:13)

我也这么认为。试试这个

ConstRef::ConstRef(int ii): i(ii), ci(i), ri(i) { }