순환 참조 유형에 문제가 있습니다. 다음의 implmentation 들어 :템플릿 클래스의 순환 종속성
// Parent.h
template <typename OtherType>
class EnclosingType
{
public:
typename OtherType type_;
};
class OtherType
{
public:
EnclosingType & e_;
OtherType (EnclosingType & e) : e_(e) {}
};
요건은 EnclosingType 메소드를 호출 할 수 있도록 OtherType가 EnclosingType의 목적에 대한 참조를 취하며 EnclosingType가 OtherType 메소드를 호출 할 수있다. 주요 목표는 구현자가 자신의 OtherType 파생 형식을 제공 할 수 있도록하는 것입니다.
이 순환 종속성 유형이있는 경우를 처리하는 가장 좋은 방법은 무엇입니까? OtherType의 적절한 선언은 무엇입니까? OtherType :: EnclosingType의 적절한 선언은 무엇입니까? Enclosing :: OtherType :: type_의 적절한 선언은 무엇입니까? 나는 심지어 할 수있는 일이 가능한가?
감사합니다.
'EnclosingType'은 유형이 아닙니다. 그것은 템플릿입니다. 그리고 방법이 없습니다. 'OtherType'도 메소드가 없습니다. 네가하려는 것을 이해하지 못한다. – melpomene
CRTP를 확인하십시오. 문제 해결에 도움이 될지 잘 모르겠지만이 시나리오에 도움이 될 수 있습니다. https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern –