结构中有对象,无法复制

Don*_*lio 2 struct compiler-errors mql4

我正在尝试从我的第一个MQL4专家顾问开始,

我创建了一个struct来处理我的订单:

struct Order
  {
   int               pair;
   int               command;
   double            quantity;
   double            entry;
   double            stopLoss;
   double            profit;
   int               slippage;
   string            comment;
   int               magicNumber;
   datetime          expire;
  };
Run Code Online (Sandbox Code Playgroud)

但似乎我不能这样做:

  Order a;
  Order b=a;
Run Code Online (Sandbox Code Playgroud)

编译器挂起:

'=' - structure have objects and cannot be copied
Run Code Online (Sandbox Code Playgroud)

如何分配struct

Pra*_*Anj 5


我的推荐答案

您可以将类与指针一起使用,而不是与结构一起使用,结构不能具有指针,并且不能在内部使用字符串进行复制,

示例如下, http://docs.mql4.com/basis/types/object_pointers

阅读此书可了解类与结构的关系 http://docs.mql4.com/basis/types/classes


char数组的替代答案(但对此进行简单更改)

char在结构内部而不是字符串中定义具有固定大小的数组。

可以使用s和数组并与之一起使用
CharArrayToString( ... )

StringToCharArray( str, array, 0, StringLen( str ) )
stringchar


例:

struct Order
  {
   int               pair;
   int               command;
   double            quantity;
   double            entry;
   double            stopLoss;
   double            profit;
   int               slippage;
   char              comment[10];
   int               magicNumber;
   datetime          expire;
  };

  Order  a;
  string str = "testing\n";

  StringToCharArray( str, a.comment, 0, StringLen( str ) );

  Order b = a;

  Comment( "Array " + CharArrayToString( b.comment ) );
Run Code Online (Sandbox Code Playgroud)