Vous pouvez également déclarer des membres constants dans les classes.
Eh bien, oui, je n'utilise pas tous les modificateurs correctement ici, c'est pourquoi cela a provoqué mon admiration, je l'ai vérifié, maintenant j'ai obscurci le code, alors que je voulais juste l'écrire de manière compacte )))).
Ma mise en œuvre de la construction pour chacun par MQL.
Jusqu'à présent, cela ne fonctionne que pour les tableaux : 1) les tableaux mql-arrays ordinaires ; 2) les classes de tableaux personnalisées, qui devraient avoir l'opérateur [](int) défini et lafonction globaleArraySize surchargée.
Syntaxe :
foreach(element_var, array) { ... }
Un tableau peut être défini comme une variable ou une expression - c'est pourquoi nous avons dû construire le jardin). L'expression est exécutée une fois, en stockant un pointeur vers le tableau, puis en accédant au pointeur.
Ma mise en œuvre de la construction pour chacun par MQL.
Jusqu'à présent, cela ne fonctionne que pour les tableaux : 1) les tableaux mql-arrays ordinaires ; 2) les classes de tableaux personnalisées, qui devraient avoir l'opérateur [](int) défini et la fonction globale ArraySize surchargée.
C'est cool ! Est-il possible de réaliser une telle variante ?
voidOnStart()
{
MqlTick Ticks[3];
for (int i = 0; i < ArraySize(Ticks); i++)
Ticks[i].bid = i + 1;
foreach(MqlTick Tick, Ticks) Print(Tick.bid); // OK
foreach(MqlTick Tick[1], Ticks) ArrayPrint(Tick); // 'Tick' - invalid array access
}
Alexey Navoykov: Eh bien, l'initialisation d'un tableau avec des variables n'est pas supportée dans MQL. Vous pouvez faire une affectation à un élément de tableau:
Je ne comprends pas la mise en œuvre, mais je ne vois pas l'intérêt de procéder de cette façon.
Oui, c'est vrai. Lorsque j'ai commencé à m'y intéresser, j'ai découvert une particularité intéressante. Lorsqu'un argument d'un type constant(const int, par exemple) est transmis à un modèle, il est pris simplement comme : T = int, mais la constance est en quelque sorte prise en compte aussi, ce qui est déroutant :
template<typename T>
class B { };
template<typename T>
void f(T & a)
{
B<const T> b; // OK. Значит T==int
const T arr[]={}; // Тоже всё ОК.
T arr2[]; // 'arr2' - 'const' variable must be initialized. wtf?
}
voidOnStart()
{
constint a=0;
f(a);
}
Au début, je pensais que c'était une caractéristique de MQL, mais c'est la même chose en C++.
// Некоторые возможности структур, которых нет у классов.hm, intéressant, j'ai vraiment aimé l'idée des champs const, les const ne seront initialisés qu'une fois
hm, intéressant, j'aime l'idée avec les champs const, les const ne seront initialisés qu'une fois
vous pouvez maintenant faire la normalisation des lots de cette manière :
Vous pouvez également déclarer des membres constants dans les classes.
Vous pouvez également déclarer des membres constants dans les classes.
Eh bien, oui, je n'utilise pas tous les modificateurs correctement ici, c'est pourquoi cela a provoqué mon admiration, je l'ai vérifié, maintenant j'ai obscurci le code, alors que je voulais juste l'écrire de manière compacte )))).
ZS : le pliage en ME fait vraiment défaut ! - c'est fatiguant de faire rouler la molette de la souris ici et là ((()Ma mise en œuvre de la construction pour chacun par MQL.
Jusqu'à présent, cela ne fonctionne que pour les tableaux : 1) les tableaux mql-arrays ordinaires ; 2) les classes de tableaux personnalisées, qui devraient avoir l'opérateur [](int) défini et lafonction globaleArraySize surchargée.
Syntaxe :
foreach(element_var, array) { ... }Un tableau peut être défini comme une variable ou une expression - c'est pourquoi nous avons dû construire le jardin). L'expression est exécutée une fois, en stockant un pointeur vers le tableau, puis en accédant au pointeur.
Exemples d'utilisation :
Exemples d'utilisation :
Un peu de réécriture
Ma mise en œuvre de la construction pour chacun par MQL.
Jusqu'à présent, cela ne fonctionne que pour les tableaux : 1) les tableaux mql-arrays ordinaires ; 2) les classes de tableaux personnalisées, qui devraient avoir l'opérateur [](int) défini et la fonction globale ArraySize surchargée.
C'est cool ! Est-il possible de réaliser une telle variante ?
C'est cool ! Est-il possible d'en faire une version ?
foreach(Ticks[0], Ticks) ArrayPrint(Ticks[0].bid);Eh bien, l'initialisation d'un tableau avec des variables n'est pas supportée dans MQL. Vous pouvez faire une affectation à un élément de tableau:
Je ne comprends pas la mise en œuvre, mais je ne vois pas l'intérêt de procéder de cette façon.
Cela ne fonctionne pas
Cette variante ne fonctionne pas
Au début, je pensais que c'était une caractéristique de MQL, mais c'est la même chose en C++.
Au début, je pensais que c'était une caractéristique de MQL, mais c'est la même chose en C++.
parce que le type est const int. c'est juste que dans le modèle vous pouvez toujours attacher const à l'avant sans aucun problème.
mais si en c++ on peut enlever const d'un type par quelques manipulations simples, on ne peut pas le faire en mql.