Struct 结构具有对象且无法复制,尽管不存在复杂结构

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

我有以下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_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