15

我正在学习 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,这是一个临时的。我对吗?

4

1 回答 1

13

我也这么认为。尝试这个

ConstRef::ConstRef(int ii): i(ii), ci(i), ri(i) { }
于 2012-05-25T10:48:08.340 回答