2012-09-28 3 views
1

가능한 중복 :
How can I declare classes that refer to each other?선언과 함께 순환 의존성을 극복하는 방법은 무엇입니까?

이 다음은 .H 파일에 내 코드입니다. 컴파일러는 CPattern에 SP 객체가 있다는 것에 대해 불평 할 것입니다. SPat 선언을 CPattern 위에 배치 할 수는 없으므로 CPattern 객체도 CPattern 객체에 선언합니다. 어떻게 해결할 수 있습니까? 도와 줘서 고마워!

class CPattern 
{ 
public: 
    CPattern(void); 
    ~CPattern(void); 

    SP & Create(void); 
}; 


class SP 
{ 
private: 
    const CPattern* pPat; 
public: 
    SP() 
    { 
    } 
    ~SP() 
    { 
     // pointer no longer requried 
     delete pPat; 
    }  
}; 
+0

전달 선언에 대한 [응답] (http://stackoverflow.com/a/3110269/1641234)을 참조하십시오. –

답변

3

파일 상단에 class SP;을 추가하십시오. 이것은 forward declaration이며 컴파일러에 SP이 무엇인지는 알려주지 만 구현을 설명하지는 않습니다.

+0

Ahhh .... 이것에 대해 완전히 잊어 버렸습니다! 고맙습니다! – AvatarBlue

관련 문제