如何在默认构造函数中初始化引用成员?

Arm*_*ada 3 c++ pointers reference

问题真的说明了一切。

如果要实现默认构造函数,最好改用const指针成员吗?

Jos*_*eld 5

您需要使用成员初始化列表:

struct foo
{
  const int& ref;
  foo() : ref(some_value()) { }
}
Run Code Online (Sandbox Code Playgroud)

确保some_value()没有给你一个临时的。它的寿命只会延长到构造函数的结尾:

在构造函数的ctor-initializer(12.6.2)中,绑定到引用成员的临时绑定一直存在,直到构造函数退出。