나는 각 레벨마다 다른 클래스를 사용하여 트리를 구현했다. 트리 항목에 대한 포인터는 boost :: shared_ptr <>입니다.boost :: shared_ptr circular dependency
각 레벨은 상위에 대한 포인터와 하위에 대한 포인터를 저장하기 때문에 헤더 파일에 순환 종속성이 있습니다.
코드는 다음과 같습니다
//A.hpp
class A
{
List<boost::shared_ptr<B> > children;
};
//B.hpp
class B{
boost::shared_ptr<A> parent;
};
은 내가 B.hhp에서 선언을 앞으로 사용할 수 없습니다 부스트 :: shared_ptr을 사용하기 때문에. 하지만이 문제를 해결하는 방법을 모르겠습니다. 네가 나를 도울 수 있다면 좋을거야.
힌트 : 자녀가 부모를 소유하고 있습니까? 그렇지 않다면 부모에게 포인터를 가지고있는 이유는 무엇입니까? –
물론 아이들은 부모를 소유해서는 안됩니다.이 포인터를 위해 다른 종류의 포인터가 필요합니까? – Thorsten
클래스 A에 대한 일반적인 포인터가 왜 안되나요? – abellina