我有两个简单的文件:
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类文件中,它依赖于order类文件中定义的与Order相关的枚举。
这些错误是:
Trade.mqh的MQL5 4/MQL5 5
未定义的“贸易”结构(Order.mqh)
'TradeRequest‘-没有类型的声明(Order.mqh)Order.mqh
'ENUM_ORDER_STATE‘-没有类型的声明(Trade.mqh)
“贸易”-结构未定义(Order.mqh)
“;”-程序意外结束(Order.mqh)在MQL5中编译,但带有已定义的枚举的警告。
发布于 2017-01-21 10:27:58
声明enum高于class Trade,我认为没有任何理由将enum指定为类的属性。
发布于 2017-01-23 12:23:59
来自MQL5的支持小组确认,如果在Order类中声明了ENUM_ORDER_STATE,则不可能编译该代码。
唯一的解决办法是在struct定义之上定义依赖元素(enum)。
https://stackoverflow.com/questions/41773885
复制相似问题