Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Cette fonction (et toutes celles qui commencent par un trait de soulignement) est une fonction protégée de la classe.
Eh bien, ils sont fusionnés en un seul !
Il n'existe qu'une seule fonction - Compare(), mais nous devons effectuer une comparaison en fonction de la clé transmise. En conséquence, l'une des fonctions particulières protégées est choisie. C'est pourquoi ils sont protégés (protected), afin que l'utilisateur ne puisse pas y accéder - ils ne sont appelés que depuis Compare() et cela est indiqué par le soulignement.
C'est également l'une des règles de conception du code - une fonction commençant par un trait de soulignement n'est pas destinée à être appelée par les utilisateurs, elle sert uniquement à certaines tâches en classe. Son accès est restreint.
Mais pourquoi de tels tours de passe-passe quand il est beaucoup plus facile de tout faire avec des classiques. Utilisez des fonctions enveloppantes et des accolades pour masquer les variables et les fonctions imbriquées et empêcher leur accès et vous serez satisfait. Vous ne ferez que vous embrouiller et embrouiller les autres avec ces protectoïdes...
Mais pourquoi de tels tours de cirque quand tout est beaucoup plus facile à faire via les classiques. Utilisez des fonctions enveloppantes et des accolades pour masquer les variables et les fonctions imbriquées et empêcher leur accès, et vous serez satisfait. Vous ne ferez que vous embrouiller et embrouiller les autres avec ces protections...
Je ne comprends pas... Protégé est un modificateur d'accès pour une fonction. C'est-à-dire qu'on utilise une fonction protectrice, à laquelle on ne peut accéder qu'à partir d'une fonction d'une classe ou de son descendant. De plus, le soulignement signifie pour moi personnellement qu'il y a certaines hypothèses implicites dont il faut tenir compte lors de son utilisation.
Dennis Kirichenko l'a bien noté - vous pourriez tout écrire dans une seule fonction Compare(). Mais il y aurait alors deux douzaines d'écrans, il serait irréaliste de le visualiser et plus difficile à modifier que maintenant.
Je n'ai laissé que le sélecteur de touche dans la fonction Compare(), tandis que le code qui effectue la comparaison pour des touches particulières est placé dans des fonctions séparées. Étant donné que ces fonctions sont très spécifiques au contexte, elles sont déclarées dans la section protégée de la classe, afin qu'on puisse y accéder exclusivement à partir d'une autre fonction de la classe ou d'un descendant. Et pour me rappeler également que ces fonctions sont destinées à exécuter une tâche spécifique et étroite au sein d'une autre fonction - je les commence par un soulignement. Si je rencontre une telle fonction à l'avenir, je verrai immédiatement qu'il existe des hypothèses implicites à prendre en compte lors de son appel.
Il semble que vous (disons "vous") ne sachiez pas vraiment ce que sont les modificateurs d'accès et pourquoi ils sont nécessaires.
Je ne comprends pas... Protégé est un modificateur d'accès pour une fonction. C'est-à-dire qu'on utilise une fonction protectrice, à laquelle on ne peut accéder qu'à partir d'une fonction d'une classe ou de son descendant. De plus, pour moi, le symbole du trait de soulignement signifie personnellement qu'il faut tenir compte de certaines hypothèses implicites lorsqu'on l'utilise.
Mais pas d'insultes personnelles...
Eh bien, vous pouvez limiter l'accès à la fonction par des moyens classiques, sans aucune POO.
Comment ?
La tâche consiste à faire en sorte qu'à l'avenir, lors de la modification du code, il soit impossible de prendre et d'utiliser une certaine fonction "n'importe où". Comment le faire sans restriction OOP de l'accès à l 'espace de classe à l'aide de modificateurs public-protégé-privé ?
Apparemment, static et const (ce n'est pas de la POO) ne sont pas nécessaires.
Quant à la POO, très intéressant, comment la fonction suivante, qui a une large application pratique (pas du tout abstraite), ressemblerait-elle en style procédural ?
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Organiser un cycle de débordement des commandes
fxsaber, 2017.10.18 12:29
Cette version est particulièrement pertinente pour MT5 sur VPS, car MT5 est très lent et coûteux en calcul avec History.
Il est évident que toute POO peut être réécrite en style procédural. Mais c'est la pratique qui m'intéresse. J'ai donc pris le petit code ci-dessus, où la POO est utilisée au minimum.
Alors, à quel point le style procédural est-il plus agréable/plus pratique/plus lisible/plus correct que la POO dans cet exemple ? Eh bien, pas pour parler pendant quelques pages, mais juste pour comparer le code source court procédural contre OOP. Je demande aux adversaires d'OOP de montrer un cours magistral. Il ne s'agit pas du redoutable MT5, mais du bon vieux MT4.
Veuillez nettoyer ce fil de discussion de l'envahissement, ne laissez que les messages éducatifsd'Alexey Volchanskiy.
Il est tard )))) d'autant plus que je ne pourrai trouver du temps que ce week-end, il s'est avéré soudainement très occupé
Je ferai quelques études ce week-end, peut-être aussi des vidéos.
Veuillez nettoyer le fil de discussion de l'inondation, ne laissez que les messages éducatifsd'Alexey Volchanskiy.
Vladimir, si vous n'avez pas appris pendant toutes ces années, il est trop tard pour commencer ;).
Apparemment, static et const (ce n'est pas de la POO) ne sont pas nécessaires.
En ce qui concerne la POO, il est très intéressant de savoir à quoi ressemblerait la prochaine fonction, qui a une large application pratique (pas du tout abstraite), dans un style procédural ?
Évidemment, toute POO peut être réécrite en style procédural. Mais c'est la pratique qui m'intéresse. J'ai donc pris le petit code ci-dessus, où la POO est également utilisée au minimum.
Alors, à quel point le style procédural est-il plus agréable/plus pratique/plus lisible/plus correct que la POO dans cet exemple ? Eh bien, pas pour parler pendant quelques pages, mais juste pour comparer le code source court procédural contre OOP. Je demande aux opposants à OOP de montrer une classe de maître. Il ne s'agit pas du redoutable MT5, mais du bon vieux MT4.
Vladimir, si après toutes ces années ils n'ont toujours pas appris, je pense qu'il est trop tard pour commencer ;)
Puis-je demander qui ils sont et ce qu'ils n'ont pas appris? Les modérateurs n'ont pas appris à nettoyer ou autre chose).
ZS : A propos, dans tout le fil de discussion, je n'ai pas vu un seul souhait de couvrir un quelconque sujet, comme toujours, la rancœur habituelle. J'ai donc décidé d'enregistrer des vidéos sur YouTube en partant de zéro sur le fonctionnement de la POO, au moins cela aura une certaine utilité. De toute façon, dans quelque temps, la branche se retrouvera dans le branch_sucker.