我正在尝试解决C++/CLI中创建循环依赖项的以下问题。意味着它的编译方式,该类在EventHandler中尚不存在;但是类需要创建一个EventHandler,因此类的顺序也不能颠倒。
我有两个类互相引用的理由,但是编译器无法识别这些类。 (即编译器错误)。
最佳答案
您可以像在普通C++中一样解决此问题:首先声明类型及其函数,然后使用它们,然后在该类型的其余代码之外定义它们。因此,如果要将所有内容都放在一个文件中(而不处理头文件等),则可以执行以下操作:
public ref class EventHandler
{
public:
EventHandler(){}
void DataChanged(Object^ sender, DataTableEventArgs ^arg);
};
public ref class DTManager
{
// all of DTManager's code goes here; you can use EventHandler::DataChanged
};
void EventHandler::DataChanged(Object^ sender, DataTableEventArgs ^arg);
{
DTManager::DataChanged(arg);
}
普通的C++方法是在头文件中声明所有类型及其功能,并将其定义仅放入代码文件中。对于大型项目,这样做特别容易,特别是如果您具有循环依赖项。
关于compiler-errors - 需要C++/CLI中循环依赖的解决方案(编译器错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088327/