Struct 结构具有对象且无法复制,尽管不存在复杂结构
我有以下MQL代码:Struct 结构具有对象且无法复制,尽管不存在复杂结构,struct,compiler-errors,mql4,mql5,Struct,Compiler Errors,Mql4,Mql5,我有以下MQL代码: class Account {}; class Trade { protected: struct TradeParams { uint slippage; // Value of the maximum price slippage in points. Account *account; // Pointer to Account class. }; TradeParams trade_par
class Account {};
class Trade {
protected:
struct TradeParams {
uint slippage; // Value of the maximum price slippage in points.
Account *account; // Pointer to Account class.
};
TradeParams trade_params;
public:
void Trade(TradeParams &_params) {
trade_params = _params; // Error: '=' - structure have objects and cannot be copied.
}
};
但是,由于以下错误,无法编译该文件:
“=”-结构具有对象,无法复制TestTrade.mqh 17 21
我正在使用MetaEditor 5.00 build 1601(2017年5月)
我已经检查过了,但是我的结构不包含任何复杂的对象,比如字符串。建议使用指针而不是我实际使用的结构。我的目标是拥有一个带有struct参数的类构造函数,如上所示
上面的结构定义有什么问题以及如何更正?您应该在MQL4/5中的结构中使用结构,或在类中使用类。因此,要么:
struct Account {int m_accountNumber; };
struct TradeParameters {uint m_slippage; Account m_account; };
struct Trade {protected: TradeParameters m_tradeParam; public : };
或者与类相同。类是首选的,因为您不能将字符串作为结构成员(您在复制和其他操作方面会遇到问题)。在平台的最新版本中,此编译问题似乎已得到解决
我已经在MetaEditor v5.00 build 1745下编译了相同的代码,并且运行良好。如果您能帮助我解决这个问题,我将非常感激stackoverflow.com/questions/60933737/converting-mql4-ea-to-mql5