嗨,我有一个关于构造函数初始化顺序的问题.如下所示
struct B {}
struct A
{
B& b;
A(B& b) : b(b) {}
}
struct C
{
B b;
A a;
C() : b(),a(b) {}
}
struct D
{
A a;
B b;
D() : a(b),b() {}
}
Run Code Online (Sandbox Code Playgroud)
我知道C是有效的,因为b在a之前被初始化.但D怎么样?b还没有建成,但地址应该已经知道了,所以它应该是安全的吗?
谢谢