我遇到了两个相互引用的类的问题。我试图使用接口来解决问题,但遇到了其他问题,例如类重新定义。我只是不确定如何正确执行此操作。
这是我正在做的一个例子。注意:我已经删除了实际上不影响此问题的所有额外属性和方法。如何在不导致类重新定义和循环引用的情况下重做这些。如果可以,请将此示例用作正确布局报表的模板。
// 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;
}