한다고 가정 구조체 A와 B는 정의 싱글 구조체입니다순환 생성자
struct A
{
B& b_;
static A& shared_a() { ... }
A() : b_(B::shared_b()) { ... }
};
struct B
{
A& a_;
static B& shared_b() { ... }
B() : a_(A::shared_a()) { ... }
};
코드를 컴파일 할 수 있도록 파일 구조가 구성되어 있다고 가정하자.
A :: shared_a가 처음 호출되면 A의 공유 인스턴스가 생성됩니다. A의 공유 인스턴스 생성자는 B :: shared_b를 호출하여 B의 공유 인스턴스를 생성합니다. B의 공유 인스턴스에 대한 생성자는 A :: shared_a를 호출합니다. 그러나 A의 공유 인스턴스는 생성자를 완성하지 못했습니다! 따라서 이러한 생성자는 무한 루프됩니다.
이러한 루프를 방지하기 위해 클래스 A와 클래스 B를 병합 할 수 있지만 그렇게하지 않으려합니다. 보다 우아한 솔루션이 있습니까?
감사합니다,
샘이 shared_a의 A_constructor에 shared_a B 자체의()에 대한 참조를 수 있도록 제공에 대해 그것의 B_을 할 수있는 해당 참조를 설정하는 방법
무한 루프 문제를 확인 했습니까? – jdizzle