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

How to compile intersecting enum and struct in two different files?

我有这两个简单的文件:

Trade.mqh

class Trade;
class Trade {
  public:
    #include "Order.mqh"
    struct TradeRequest {
      ENUM_ORDER_STATE type;
    };
};

Order.mqh

class Order;
class Trade;
#include "Trade.mqh"

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

但是编译失败。

如何在不保留相同文件且不将结构移动到一个文件的情况下解决编译问题?


我想保持结构原样(两个单独的文件),Trade class 文件中与贸易相关的结构,该结构依赖于在 Order class 文件中定义的与订单相关的枚举。

错误是:

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

来自 MQL5 的支持团队确认,如果在订单 class.

中声明 ENUM_ORDER_STATE,则无法编译此代码

唯一的解决方法是在结构定义之上定义依赖元素(枚举)。