1
서로 참조하는 두 클래스에 문제가 있습니다. 문제를 해결하기 위해 인터페이스를 사용하려고했지만 클래스 재 정의와 같은 다른 문제가 발생했습니다. 나는 이것을 제대로하는 방법을 모르겠다.CLI에서 C++/CLI 순환 참조 문제 클래스
여기에 제가 한 일례가 있습니다. 참고 : 나는이 문제에 실제로 영향을 미치지 않는 모든 추가 속성과 메서드를 제거했습니다. 순환 참조없이 클래스를 다시 정의하지 않고 어떻게 다시 할 수 있습니까? 가능한 경우,이 예제를 템플리트의 올바른 레이아웃을위한 템플리트로 사용하십시오.
// componentClass.h
//#include "controlClass.h" - Would cause a circular reference
namespace test
{
//component class
public ref class componentClass sealed : Component
{
internal:
componentClass(controlClass ^control);
private:
controlClass ^_control;
};
}
// controlClass.h
#include "componentClass.h";
namespace test
{
//control class
public ref class controlClass: Control
{
public:
controlClass();
private:
componentClass ^_componentClass;
};
}
// controlClass.cpp
#include "controlClass.h"
controlClass::controlClass()
{
_componentClass = gcnew componentClass(this);
}
// componentClass.cpp
#include "componentClass.h"
componentClass::componentClass(controlClass ^control)
{
_control = control;
}
고마워, 그게 내가 정확히 찾고 있었던 것입니다. 전방 참조에 대해서는 알고 있었지만 componentClass의 선언을 controlClass의 선언과 같은 include 파일에 포함시키지 않았습니다. –