以下是明确界定的吗?
class A;
class B;
// define A, which takes B& in constructor
// define B, which takes A& in constructor
class C
{
A a;
B b;
public:
C() : a(b), b(a) { /* stuff with a and b */ }
}
Run Code Online (Sandbox Code Playgroud)
在ideone.com上的完整示例.
是否安全/定义良好,只要构造函数对于它们所获得的引用A
并且B
不做任何操作?
c++ constructor initialization circular-dependency initialization-list