新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1125

 
Roman Sharanov:
问题是这样的。我能否通过一个按钮打开2个(或更多)图形,使它们垂直放置,平等地占据整个显示器?

我是否应该尝试打开一个图表,并对其应用定制的模板?我没有试过--我不知道。只是大声思考...

 

在mql中,是否有办法为方法中的变量设置一个抽象的类型?

例如,这里我们有。

void append(int &array[], int value){

}

我希望这些类型不仅是int,而且是任何类型。还是有必要对一个方法进行多次重载,因为我希望它能接受各种类型?

 
Dmitri Custurov:

在mql中,是否有办法为方法中的变量设置一个抽象的类型?

例如,这里我们有。

我希望这些类型不仅是int,而且是任何类型。还是有必要对一个方法进行多次重载,因为我希望它能接受各种类型?

  template<typename T>
  void append(int &array[], T value){ }

或者,如果两种类型都是一样的。

  template<typename T>
  void append(T &array[], T value){ }

或者,如果两者是不同的类型。

  template<typename T 1, typename T 2>
  void append(T1 &array[], T2 value){ }
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
  • www.mql5.com
Перегруженные функции обычно используются для выполнения похожих операций над различными типами данных. Простой пример такой функции в MQL5 - ArraySize(), которая возвращает размер массива любого типа. На самом деле эта системная функция является перегруженной, и вся реализация такой перегрузки спрятана от разработчика программ на MQL5: То есть...
 
Artyom Trishkin:

很好,谢谢你。

 
Dmitri Custurov:

很好,谢谢你。

以上完成。

 
Artyom Trishkin:

也许你应该尝试打开一个图表,并对其应用一个定制的模板?没有试过--不知道。只是大声思考...

不,它仍然在全屏中打开一个图形

 
Roman Sharanov:

不,它仍然在全屏下打开一个单一的图形

我不记得了,现在也找不到了,是不是没有办法申请资料?在这个问题上,只有档案可以提供帮助。

 

语法方面的帮助,很难找到区别

从帮助和例子中可以看出

int  ArraySize(
   int array[]      // массив с элементами типа int
   );
int  ArraySize(
   int &array[] 
   );
 
Alexey Viktorov:

我不记得了,现在也查不到了,是不是没有办法申请资料?在这个问题上,只有档案可以提供帮助。

他们写道,如果可能的话,只能通过WinAPI DLL,MT中没有这样的东西作为标准的

 
Valeriy Yastremskiy:

语法方面的帮助,很难找到区别

从帮助和例子中可以看出

在MQL5中,数组只通过引用传递到函数中 - 需要一个appersand。它位于何处并不重要。

原因: