首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要C++/CLI中循环依赖的解决方案(编译器错误)

需要C++/CLI中循环依赖的解决方案(编译器错误)
EN

Stack Overflow用户
提问于 2012-02-01 06:59:26
回答 1查看 742关注 0票数 1

我试图在C++/CLI中解决以下问题,它创建了一个循环依赖。这意味着当类在EventHandler中时,它的编译方式还不存在;但是类需要创建一个EventHandler,因此类的顺序也不能颠倒。

我有理由让这两个类相互引用,但编译器无法识别这些类。(即编译器错误)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-01 07:32:30

解决此问题的方法与在普通C++中相同:首先声明类型及其函数,然后使用它们,然后仅在之后在类型的其余代码之外定义它们。所以,如果你想把所有东西都放在一个文件中(而不是处理头文件等),你可以这样做:

代码语言:javascript
复制
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++方法是在头文件中声明所有类型及其函数,并只将其定义放入代码文件中。对于大型项目来说,使用这种方法要容易得多,特别是当你有循环依赖的时候。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9088327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档