首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两个不同的文件中编译相交的枚举和结构?

如何在两个不同的文件中编译相交的枚举和结构?
EN

Stack Overflow用户
提问于 2017-01-20 23:14:33
回答 2查看 505关注 0票数 0

我有两个简单的文件:

Trade.mqh

代码语言:javascript
复制
class Trade;
class Trade {
  public:
    #include "Order.mqh"
    struct TradeRequest {
      ENUM_ORDER_STATE type;
    };
};

Order.mqh

代码语言:javascript
复制
class Order;
class Trade;
#include "Trade.mqh"

class Order : public Trade {
  public:
    enum ENUM_ORDER_STATE {
      ORDER_FOO,
      ORDER_BAR
    };
    TradeRequest order;
};

但是,编译失败。

如何解决编译问题,而不保留相同的文件,也不将结构移动到一个文件?

我想保持这个结构是怎样的(两个单独的文件),贸易相关的结构在trade类文件中,它依赖于order类文件中定义的与Order相关的枚举。

这些错误是:

  • 用于Trade.mqh的MQL5 4/MQL5 5 未定义的“贸易”结构(Order.mqh) 'TradeRequest‘-没有类型的声明(Order.mqh)
  • MQL4 for Order.mqh 'ENUM_ORDER_STATE‘-没有类型的声明(Trade.mqh) “贸易”-结构未定义(Order.mqh) “;”-程序意外结束(Order.mqh)

在MQL5中编译,但带有已定义的枚举的警告。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-21 10:27:58

声明enum高于class Trade,我认为没有任何理由将enum指定为类的属性。

票数 3
EN

Stack Overflow用户

发布于 2017-01-23 12:23:59

来自MQL5的支持小组确认,如果在Order类中声明了ENUM_ORDER_STATE,则不可能编译该代码。

唯一的解决办法是在struct定义之上定义依赖元素(enum)。

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

https://stackoverflow.com/questions/41773885

复制
相关文章

相似问题

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