초 템플릿 질문 : 나는 템플릿 클래스가템플릿 순환 종속성의 문제가 무엇 n00b 오늘의
:
template <class T>
class foo{
private:
//...
T SubFoo;
//...
};
가 나는 또한 myClass가라는 클래스가 있습니다. 나는 종류의 물건을 가지고 싶다 :
foo<myClass> myObject;
을하지만, 여기에 문제가있어, 나는 myObject.SubFoo에서 myObject에 대한 포인터를 얻을 수 있도록하고 싶습니다. 즉, myClass 클래스의 멤버 중 하나가 템플릿 클래스 foo의 인스턴스가되어야합니다.
그래서 내가 할 수있는 :class myClass{
//...
foo<myClass>* point2myClass;
}
그러나,이 작동하지 않는 것 같습니다 때문에
./foo.h:103: 오류 : 'foo는 :: SubFoo가'불완전 형
있다 myClass가를 정의 할 때, 프로그램은 그것은 푸의 (고화질)과 F로 이동 라인
foo<myClass>* point2myClass;
발견 INDS :
T SubFoo;
하지만 T는,이 경우 myClass가이 아직 정의되지 않은 (즉, 프로그램이 무엇을하고 있었는지입니다!) 그래서, T가 무엇인지 모르는 따라서 오류가 발생했습니다.
선언 순서를 바꾸면 "foo"가 정의되지 않으므로 실패합니다.
어떻게하면됩니까 ??
감사합니다.
코드 예제가 정확합니까? 당신은 당신이 받고있는 오류를해서는 안되기 때문입니다. –