OLP. Problèmes d'application - page 9

 

Mais vous n'avez pas vraiment besoin de le faire.....

Vous devez utiliser la virtualisation des fonctions

P.S. Et vous ne pouvez pas construire un programme normal avec une conversion de type implicite. C'est juste une variante... comme l'opérateur GoTo.....

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Основы языка / Типы данных / Приведение типов - Документация по MQL5
 
AlexSTAL:
2) L'essentiel est de le supprimer avant la fin du programme... Mais si vous avez créé ce pointeur dans une fonction, vous devez prendre soin de l'enregistrer dans un emplacement global...


C'est ce que je pensais aussi, le tableau semble être global, mais il y a une fuite. Ou est-ce que ce n'est pas seulement le tableau qui doit être là, mais quelque chose d'autre aussi ?

 
Vous me faites vraiment rire ))))
 
Interesting:

C'est ce que je pensais aussi, le tableau semble être global, mais il y a une fuite. Ou est-ce que ce n'est pas seulement le tableau, mais quelque chose d'autre aussi ?

Vous avez peut-être une fuite ailleurs...

J'ai des centaines de classes créées de cette façon et je n'ai jamais eu de fuite nulle part.....

Vous essayez un exemple simple....

 
TheXpert:
Vous me faites vraiment rire ))))
Parfois, c'est bon pour vous... éprouvant pour les nerfs ....
 
AlexSTAL:

Vous avez peut-être une fuite ailleurs...

J'ai des centaines de classes créées de cette façon et je n'ai jamais eu de fuite nulle part.....

Essayez un exemple simple....

Je pense m'en être débarrassé, en mettant ce code dans le bloc de désinstallation d'EA (aucun problème jusqu'à présent).

  for (int i=0; i<ArraySize(ArrShapes);i++)  
  {
  ArrShapes[i].Free(ArrShapes[i]);
  }
 

Ça a fini comme ça, très incompréhensible.

C'est un monstre en un mot... :)

Dossiers :
Forum-2.mq5  11 kb
 

Quoi qu'il en soit, à la suite de la discussion sur le problème,https://www.mql5.com/ru/forum/3566/page6#comment_58280 a envoyé une demande au SR.

 
Yedelkin:

En général, après une discussion sur le problème,https://www.mql5.com/ru/forum/3566/page6#comment_58280 a envoyé une demande au SR.

1. Je ne sais pas, je ne sais pas.

Je pense que les développeurs ne prendront pas la peine de sacrifier des fonctionnalités au nom de la sécurité (c'est la bonne chose à faire dans un sens).

La méthode proposée par Aleksander(AlexSTAL) aurait pu résoudre le problème (sans tenir compte de sa nature quelque peu gênante).

Mais en faisant cela, nous aurons au mieux accès aux événements et méthodes des descendants (dans ce cas, les propriétés, variables et autres éléments non déclarés dans l'ancêtre ont peu de chances d'être utilisés).

Cependant, nous devrons très probablement expérimenter.


2. sur la base de ce que nous avons maintenant, nous pouvons faire autre chose, je vois 2 options :

а. Utilisez des tableaux spécialisés qui contiennent des objets d'une seule classe (descendants d'un certain type) ;

Dans ce cas, vous pouvez accéder à toutes les propriétés, méthodes et événements des objets du tableau (car ils sont homogènes) ;

б. S'il est nécessaire de travailler avec un tableau d'objets de différents types, qui sont des descendants d'une classe de base, vous devrez créer des tableaux supplémentaires pour stocker chaque type de descendants.

Ainsi, dans le tableau principal, nous n'aurons accès qu'aux fonctionnalités communes à tous les objets (sinon AUTOGEN et QUALDA), et dans les tableaux spécialisés, nous aurons accès à toutes les fonctionnalités de chaque type de descendants.

Si j'ai bien compris, nous obtiendrons quelque chose comme une base de données composée de plusieurs tables, avec des méthodes de connexion de type one-to-many et many-to-one. Dans ce cas, cependant, la question de la bonne synchronisation de l'ensemble de l'affaire se posera. En outre, nous devrons décider sur quelle base tous les tableaux (tables) de la base de données improvisée seront liés.

La liaison peut être basée sur certains identifiants uniques, par exemple, sur des pointeurs ou des poignées spécialisées (comme celles utilisées pour les dindes).

PS

Au fait, je pense que l'idée des poignées est suffisamment bonne (même si vous prenez les pointeurs comme base de tout travail avec les objets). Les poignées doivent permettre de distinguer l'objet unique des objets similaires ou de toute la liste des objets.

 
TheXpert:
Vous me faites vraiment rire ))))
Parfois, je me fais vraiment peur, c'est bien que parfois. :)
Raison: