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
Une question s'est posée :
Il existe une classe "Programme" qui utilise les classes"Nouvelle barre" et "Gestionnaire de données". La classe "New Bar" utilise à son tour la classe "Data Manager". Les getters et setters publics sont implémentés dans la classe "Data Manager".
Question : Quelles sont les options pour l'initialisation du programme de la classe "New Bar" pour spécifier les propriétés "symbol" et "timeframe" de la classe "Data Manager" ? Je ne voudrais pas avoir de récupérateurs et de régleurs publics dans la classe New Bar pour accéder aux champs du gestionnaire de données. Et nous aimerions garder le gestionnaire de données privé.
En d'autres termes : l'application peut utiliser plusieurs classes qui utilisent le gestionnaire de données. Pendant l'initialisation du programme, tous les champs du gestionnaire de toutes les classes doivent être initialisés avec les valeurs requises. Mais je ne veux pas créer des getters dans toutes les classes pour accéder aux champs du gestionnaire de données. Alors...
Selon votre description, il est logique de séparer ces paramètres dans une entité distincte, la même pour tous les gestionnaires et non seulement
Oui, il semble que vous devez hériter des classes qui ont besoin d'un gestionnaire à partir d'une classe de base qui a des récupérateurs pour les champs du gestionnaire. Merci.
Une question s'est posée :
Il existe une classe "Programme" qui utilise les classes"Nouvelle barre" et "Gestionnaire de données". La classe "New Bar" utilise à son tour la classe "Data Manager". Les getters et setters publics sont implémentés dans la classe "Data Manager".
Question : Quelles sont les options pour l'initialisation du programme de la classe "New Bar" pour spécifier les propriétés "symbol" et "timeframe" de la classe "Data Manager" ? Je ne voudrais pas avoir de récupérateurs et de régleurs publics dans la classe New Bar pour accéder aux champs du gestionnaire de données. Et nous aimerions garder le gestionnaire de données privé.
En d'autres termes : l'application peut utiliser plusieurs classes qui utilisent le gestionnaire de données. Pendant l'initialisation du programme, tous les champs du gestionnaire de toutes les classes doivent être initialisés avec les valeurs requises. Mais je ne veux pas créer des getters dans toutes les classes pour accéder aux champs du gestionnaire de données. Alors...
C'est à peu près comme ça que je fais.
C'est à peu près comme ça que je fais.
Merci pour l'exemple, c'est un peu compliqué jusqu'à présent, mais en général l'idée est claire. Une question se pose immédiatement : ok, si "un niveau d'imbrication" - ici c'est clair, mais s'il y aura plusieurs niveaux d'imbrication ?
Ajouté :
On ne sait pas non plus pourquoi le champ cIsDelData ? Après tout, vous pouvez simplement vérifier m_data par rapport à POINTER_DINAMIC dans le destructeur. Ou ai-je tort ?
Si vous faites de l'héritage, vous obtiendrez beaucoup de méthodes inutiles. Et l'objet doit être privé. Vous n'allez pas le croire, mais le moyen le plus simple est de mettre des setters pour toutes les classes qui utilisent le gestionnaire de données.
Si tous les gestionnaires de données travaillent avec les mêmes paramètres, il est préférable de ne pas créer d'objets, mais de transmettre un pointeur vers un gestionnaire de données. Dans ce cas, un seul setter est nécessaire pour transmettre le pointeur.
Merci pour l'exemple, c'est un peu compliqué jusqu'à présent, mais en général l'idée est claire. Une question se pose immédiatement : ok, si "un niveau d'imbrication" - ici c'est clair, mais s'il y aura plusieurs niveaux d'imbrication ?
Ajouté :
On ne sait pas non plus pourquoi le champ cIsDelData ? Après tout, vous pouvez simplement vérifier m_data par rapport à POINTER_DINAMIC dans le destructeur. Ou ai-je tort ?
Merci, je vais y réfléchir.
Je le fais à peu près comme ça.
ce que signifie cette ligneCDataManager* m_data;
Les gars, je veux faire un truc comme ça. J'ai une macro.
Par conséquent, j'aurai deux macros,foor etfoor1.
ce que signifie cette ligneCDataManager* m_data;
Les gars, je veux faire un truc comme ça. J'ai une macro.
Par conséquent, j'aurai deux macros,foor etfoor1.
Un pointeur vers un objet.
Ne le prenez pas mal, mais il est trop tôt pour que vous vous occupiez de telles macros. Tout d'abord, comprenez pourquoi j'ai fait ça :