Questions sur la POO dans MQL5 - page 75

 

la question est fausse, je n'arrive pas à lire la signature de la fonction.

void deleteCTest(CTest * &t)

Je ne peux pas le lire.

La logique veut que j'écrive quelque chose comme ça :

void deleteCTest((CTest *) &t)

passer par référence un pointeur vers un type, mais le compilateur donne des erreurs avec de telles parenthèses, mais au moins maintenant je comprends ce que la fonction a reçu comme arguments ;))

 
Igor Makanu:

la question est fausse, je n'arrive pas à lire la signature de la fonction.

Je n'arrive pas à lire la signature.

Je devrais logiquement écrire quelque chose comme ça :

passer par référence un pointeur vers un type, mais le compilateur génère des erreurs avec de telles parenthèses, mais au moins maintenant je comprends ce que la fonction a reçu comme arguments ;))

Ne serait-il pas plus simple d'utiliser & ...

Pour moi & est une référence stricte

* - est une désignation d'une variable où l'on écrira l'adresse d'une référence et où l'on travaillera ensuite avec cette variable, il est donc possible de changer de classe tout en l'obtenant, ce qui peut parfois rendre la situation confuse.

l'opérateur * & est rarement nécessaire

 
Alexandr Andreev:

L'opérateur * & est rarement nécessaire

aucun doute

Mais je l'écris, j'ai décidé de comprendre ce que nous passons et ce que nous obtenons lorsque nous travaillons avec des pointeurs en MQL .... avecGetPointer()

;)

 

Pour moi, il est plus intéressant d'écrire un tri rouge par classes, ou un arbre de tri délibéré, quelque chose comme une liste, mais avec une recherche binaire intégrée sur la liste elle-même, et un tri de cette liste (en général, je suis faible dans cette terminologie, peut-être que cela existe déjà, juste appelé quelque chose (un arbre d'une certaine couleur)).

En même temps et tout comprendre en une seule fois, vous obtiendrez
 
Igor Makanu:

la question est fausse, je n'arrive pas à lire la signature de la fonction.

Je ne peux pas le lire.

La logique veut que j'écrive quelque chose comme ça :

void deleteCTest((CTest *) &t)

passer par référence un pointeur vers un type, mais le compilateur génère des erreurs avec de telles parenthèses, mais au moins maintenant j'ai compris ce que la fonction recevait comme arguments ;))

Juste au cas où - la notation "fantôme" n'est pas pertinente dans la définition de la fonction, seulement lorsqu'elle est appelée. Et si vous passez & à une fonction qui attend *, alors la conversion n'est pas nécessaire.

Et en réfléchissant à voix haute - je pense que si une telle nécessité existe, il faut passer un pointeur d'objet par référence et le clouer/réincarner dans une fonction tierce.

Je pense que cela ne correspond pas à l'objectif des objets dynamiques.

Alexandr Andreev:

Pour moi, il est plus intéressant d'écrire un tri rouge par classes, ou un arbre de tri délibéré, quelque chose comme une liste, mais avec une recherche binaire intégrée sur la liste elle-même, et un tri de la liste (en général, je ne suis pas familier avec cette terminologie, peut-être qu'elle existe déjà, elle est juste appelée d'une manière ou d'une autre (un arbre d'une certaine couleur)).

Cela vous donnera également un aperçu de ce qui se passe...

Avez-vous consulté la bibliothèque standard pour cela ? Tout programmeur devrait écrire un tri à partir de zéro :)

 
Методы сортировки и их визуализация с помощью MQL5
Методы сортировки и их визуализация с помощью MQL5
  • www.mql5.com
В Сети можно найти ряд видеороликов с демонстрацией различных видов сортировок. Например, здесь представлена визуализация 24 алгоритмов сортировки. Это видео я и взял за основу, наряду со списком алгоритмов сортировки. Для работы с графиками в MQL5 разработана специальная библиотека Graphic.mqh. Она уже описана в статьях: в частности, здесь...
 
Igor Makanu:

pas d'arguments

Mais je l'écris, j'ai décidé de comprendre ce que nous passons et ce que nous obtenons lorsque nous travaillons avec des pointeurs en MQL .... avec GetPointer()

;)

Cependant, c'est intéressant, puisque vous êtes ici depuis de nombreuses années et que je me souviens de vous dans les discussions sur la POO depuis longtemps, et maintenant il s'avère que vous n'avez même pas la moindre idée de la façon dont elle est mise en œuvre dans MQL. La question est de savoir pourquoi vous avez utilisé le forum MQL pendant tout ce temps).

Peut-être n'utilisez-vous pas d'objets dynamiques, bien que j'ai du mal à imaginer comment on peut s'en passer en POO, d'autant plus que toutes les bibliothèques MQ standard sont adaptées aux pointeurs uniquement.

Et l'objectif n'est pas très clair non plus. Pourquoi voudriez-vous étudier MQL si vous possédez C# ? Pour vous condamner artificiellement à des difficultés... Savez-vous que les bibliothèques .Net sont facilement récupérables dans MetaEditor ? Bien que seules les méthodes statiques soient disponibles et que les types de données soient limités. Mais pour organiser la communication et le transfert de données, c'est suffisant. Bien que je ne l'ai pas vérifié, peut-être que l'intégration est déjà plus profonde. Je dois le regarder.

 
Igor Makanu:

Pensez-vous que plus de la moitié des participants au forum comprennent comment fonctionne la POO dans MQL ? - J'en doute, au moins les messages des anciens et des participants actifs montrent leur niveau de connaissance de MQL.

Et c'est pourquoi la POO est surtout utilisée pour utiliser la SB,

Je ne sais même pas comment les gens se donnent la peine de l'utiliser dans leurs robots - c'est juste de la frime. Structures au maximum.

Semka est parti avec son dessin, qui a besoin de ce dessin, ici ils sont venus pour gagner de l'argent pour eux et leurs proches, bien sûr les développeurs n'ont pas eu pitié de lui. Peter, tout sauf le commerce). Remplir le cerveau des programmeurs de fonctionnalités inutiles

 
awsomdino:

Les classes, l'héritage, la virtualisation, les modèles, il était très difficile pour moi de comprendre tout cela en tant qu'autodidacte, j'ai compris un peu et j'ai abandonné la POO, je ne peux même pas imaginer comment les gens s'embêtent dans leurs robots - que vous devez utiliser tout cela, c'est juste une frime. structures au maximum

dépendent de la tâche, bien que je sois d'accord en général - le but n'est pas l'art d'écrire le bon code en accord avec les tendances actuelles de la programmation, mais la possibilité de gagner de l'argent

J'ai appris à dessiner de belles images dans le testeur, qui peut passer le test sur l'histoire et en avant, maintenant je collecte des informations sur la façon de combiner le commerce en ligne et le testeur lui-même, ici j'ai très probablement besoin de OOP - je veux ajouter et supprimer des stratégies en temps réel, enregistrer et planifier pour être en mesure de se déplacer de PC à PC en temps réel - pas beaucoup d'informations sur l'état de la TS, mais la façon habituelle - de tout écrire dans le nombre magique ne fonctionnera pas

en général, tout en analysant le matériel

awsomdino:

Semka est parti avec son dessin, qui a besoin de ce dessin, ici est venu l'argent pour se faire et leurs proches, bien sûr, il n'était pas désolé pour les développeurs. Peter, tout sauf le commerce). Ils ont rempli les cerveaux des programmeurs avec leurs fonctionnalités inutiles.

Eh bien, la créativité est intéressante, et l'échauffement de l'esprit est toujours nécessaire, je suis quelques années je n'ai pas s'asseoir à un PC - tout complètement altéré, puis, en fait, à partir de zéro des trucs à soulever, alors ne prenez pas toute la créativité des programmeurs comme leur désir de réaliser quelque chose - juste la créativité et un échauffement, imho, bien qu'il ya des exceptions - ils voient le point ;)

 
Igor Makanu:

cela dépend de la tâche, bien qu'en général je sois d'accord - le but n'est pas un art d'écrire le bon code selon les tendances modernes de la programmation, mais une opportunité de gagner de l'argent.


L'exemple devrait être pris de Saber, je ne sais pas le vrai but de celui-ci, mais j'ai vu son si autre) arbre là pour obtenir ce que vous avez besoin. J'avais une question quand je suis venu ici, comment le faire tout de suite, et chercher comment le mettre en œuvre, tout relire - vraiment perdu que du temps, il n'y a pas de mise en œuvre correcte, des tas d'articles et partout le sien. Je suis vraiment déçu quand vous ne comprenez pas grand chose ici dans le code et que vous vous tenez au carrefour de 5 routes et que vous réfléchissez à la voie à suivre. La question n'est même pas de savoir si vous trouverez un système de trading rentable ici, la question est de savoir si vous trouverez jamais la bonne voie optimale) - C'est notre cher MQL5.