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
j'ai regardé les résultats de ma bataille avec le code de style POO - hmmm... Excellent ! ))))
J'ai une question, mais dans mon code, enfin, trois fois exactement, j'utilise une construction comme :
appelle tout dans des méthodes privées, mais existe-t-il une "méthode Jedi ?" pour s'affranchir dans le code source de CheckPointer(m_order)==POINTER_INVALID
Je demande à propos de certains get / set
pas de problèmes particuliers, mais pour ainsi dire un caprice, ou alors que la soif de connaissance des méthodes OOP en C++ n'a pas encore diminué
Si la question est "plusieurs lettres", alors !CheckPointer(mPtr), et si l'appel de fonction, vous initialisez tous les pointeurs à NULL dans le constructeur et comparez à celui-ci dans le code, sans oublier lors de la suppression de ptr ; ptr=NULL ;
j'ai regardé les résultats de ma bataille avec le code de style POO - hmmm... Excellent ! ))))
J'ai une question, mais dans mon code, enfin, trois fois exactement, j'utilise une construction comme :
appelle tout dans des méthodes privées, mais existe-t-il une "méthode Jedi ?" pour s'affranchir dans le code source de CheckPointer(m_order)==POINTER_INVALID
Je demande à propos de certains get / set
pas de problèmes particuliers, mais pour ainsi dire un caprice, ou alors que la soif de connaissance des méthodes OOP en C++ n'a pas encore diminué
Igor, regardez cet exemple, je pense que c'est ce que vous demandez.
Si la question est "plusieurs lettres", alors !CheckPointer(mPtr), et si dans un appel de fonction, on initialise tous les pointeurs à NULL dans le constructeur et on compare à celui-ci dans le code, sans oublier lors de la suppression de ptr ; ptr=NULL ;
Eh bien et ça, pour le sucre :
Pas de problèmes particuliers, mais pour ainsi dire un coup de tête, ou alors que la soif d'apprendre les méthodes OOP en C++ ne s'est pas encore éteinte.
Je vous recommande vivement d'initialiser tous les champs de la classe avec des valeurs par défaut dans le constructeur. Le fait est que si vous voulez faire ça :
void foo(){ CClass someClass; someClass.DoSomething(); }
personne n'initialisera les champs de votre classe et il y aura des valeurs débiles.
Et ça, pour le sucre :
Non, j'ai presque abandonné les définitions, je ne veux simplement pas envelopper quoi que ce soit, comme je l'ai écrit il y a quelques semaines - je veux voir du code pur de style OOP pour l'instant, évaluer la flexibilité et les possibilités...
HH : J'ai juste enveloppé les descendants dans define à la création, pour ne pas écrire la même initialisation sur 3 lignes, il est plus facile d'ajouter des méthodes plus tard, c'est-à-dire dans le code source sur une ligne jusqu'à présent
Igor, regardez cet exemple, je pense que c'est ce que vous demandez.
non, je veux dire l'équivalent en c# - operator ? ? (opérateur de jonction nulle), quelque chose de similaire en logique que je voudrais voir dans le style C++.
UPD :
Je recommande vivement d'initialiser tous les champs d'une classe avec des valeurs par défaut dans le constructeur. Le fait est que si vous voulez faire ça :
Si vous demandez une macro, personne n'initialisera les champs de votre classe et il y aura des valeurs poubelles.
c'est ce que j'ai fait, constructeur avec initialisation de tout et n'importe quoi dans la classe de base, les descendants initialisent la classe de base :
c'est pourquoi je l'ai enveloppé dans une macro, pour ne pas oublier de l'initialiser correctement ))))
Non, j'ai presque abandonné les définitions, je ne veux simplement pas envelopper quoi que ce soit, comme je l'ai écrit il y a quelques semaines - je veux voir du code pur de style OOP pour l'instant, évaluer la flexibilité et les possibilités...
ZS : seulement les descendants enveloppés dans define à la création, pour ne pas écrire la même initialisation sur 3 lignes, c'est plus facile d'ajouter des méthodes plus tard, c'est-à-dire dans le code source sur une seule ligne pour le moment
non, je veux dire l'équivalent en c# - operator ? ? (opérateur de jonction nulle), je veux voir quelque chose de similaire en logique dans le style C++.
Votre refus du préprocesseur est vain. Avec les modèles, ce sont les outils les plus puissants. Il ne semble pas y avoir d'analogue de l'opérateur ? ? Le C++ est plus hardcore à cet égard.
Je suis toujours en train de me battre pour un style de POO pur, je veux apprendre toutes les techniques de POO, tant qu'il y a un atout sur le forum ;)
Je connais bien le préprocesseur, mais... Je pense que je ne devrais pas en abuser, en tout cas, ce n'est pas mon style, je risque de me planter, et je ne serai certainement pas capable de lire du code avec de multiples macrosubstitutions, et comment chercher les bugs... eh bien, c'est plus facile à réécrire - donc, pas encore nécessaire
des modèles... Eh bien, je n'aime pas ce que les développeurs proposent dans SB, je les ai tous examinés, il est difficile de dire dans quel but ils ont été inclus dans SB, peut-être que leur temps n'est pas encore arrivé
à propos du portage des templates C++ vers MQL - il est temps, comme la discussion l'a montré, que dans la plupart des cas les templates C++ nécessitent un réglage fin pour MQL - il est plus facile de revenir au .dll et de ne pas s'embêter avec MQL ))))
Je suis toujours en train de me battre pour un style de POO pur, je veux apprendre toutes les techniques de POO, tant qu'il y a un atout sur le forum ;)
Je connais bien le préprocesseur, mais... Je pense que je ne devrais pas en abuser, en tout cas, ce n'est pas mon style, je risque de me planter, et je ne serai certainement pas capable de lire du code avec de multiples macrosubstitutions, et comment chercher les bugs... eh bien, c'est plus facile à réécrire - donc, pas encore nécessaire
des modèles... Eh bien, je n'aime pas ce que les développeurs proposent dans SB, je les ai tous examinés, il est difficile de dire dans quel but ils ont été inclus dans SB, peut-être que leur temps n'est pas encore arrivé
à propos du portage des templates C++ vers MQL - il est temps, comme la discussion l'a montré, que dans la plupart des cas les templates C++ nécessitent un réglage fin pour MQL - il est plus facile de revenir au .dll et de ne pas s'embêter avec MQL ))))
Vous pouvez écrire des modèles de cette façon vous-même.))))
Yup ))))
J'ai fini de lire l'aide et j'ai sauté l'override, Dieu merci tout est dans les macros, les éditions, enfin, exactement en un copier-coller
UPD :
non, c'est sorti pour le contrôle de permission lui-même, pas besoin de méthode publique !
Et puis il y a ça, pour le sucre :
Je voulais écrire ce que j'avais l'habitude d'avoir au lieu de...
c'était comme ça :
mais je me suis souvenu comment vérifier les substitutions de macro dans MQL
2019.09.16 22:57:42.837 tst (EURUSD,H1) a = 1
2019.09.16 22:57:42.837 tst (EURUSD,H1) POINTER_INVALID = 0
2019.09.16 22:57:42.837 tst (EURUSD,H1) NULL = 0
et si ma mémoire est bonne, au début de l'année, il était possible de désimprimer NULL dans le journal et d'obtenir 0, maintenant une erreur apparaît.
C'est-à-dire que le comportement NULL as if ne devrait pas changer dans le futur, mais ce qui est substitué là au lieu de NULL n'est pas clair, probablement si cette situation est vérifiée maintenant, comme écritif(CheckPointer(m_order)==POINTER_INVALID)) )) c'est pour ainsi dire le code correct)))