c++ - 此构造函数初始化程序是否会导致悬空引用?

标签 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,这是一个临时的。我说的对吗?

最佳答案

我也这么认为。试试这个

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

关于c++ - 此构造函数初始化程序是否会导致悬空引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10753042/

相关文章:

c++ - 来自元组的构造函数参数

c++ - 我怎样才能让我的模板类推断出函数指针模板参数的返回值和参数类型

C++ -(零成本?)类似 operator=(value) 的代理 -> std::map[key]=value inside class

c++ - 引用 — sizeof 是否返回实际内存大小?

c++ - 删除 ptr C++ 后会发生什么

c++ - 悬挂指针 - 请验证

c++ - cin 中的冗余输入

c++ - "myType& var = *(myType*) addrVar;"的逆运算是什么(c++)

C++ 将对象传递给函数

c++ - 是否可以在其范围之外访问局部变量的内存?