OLP. Problèmes d'application - page 16

 
Yedelkin:

Les questions sont-elles vraiment lourdes/incorrectes ?

Pendant longtemps, j'ai utilisé la première méthode ("par référence"), mais j'aime beaucoup l'idée des descripteurs. Je ne sais pas si ça vaut la peine de réécrire toutes les classes.

La première méthode serait plus rapide. L'accès par "descripteur" est plus long.
 
mql5:
La première méthode sera plus rapide. L'accès via le "descripteur" prend plus de temps.
Merci, c'est très utile.
 

Un indice,

Si une classe parent possède 15 méthodes, mais que la classe enfant possède sa propre méthode et n'utilise que trois méthodes héritées de la classe parent, comment la mémoire sera-t-elle allouée pour la classe enfant : en fonction de la nécessité d'allouer de la mémoire pour 16 méthodes, ou en fonction de seulement 4 méthodes réellement utilisées ?

Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
  • www.mql5.com
Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5
 
Yedelkin:

Pouvez-vous me donner un indice ?

Vous remplissez votre tête avec les mauvaises choses.)
 
Yedelkin:

Un indice,

Si une classe parent possède 15 méthodes, mais que la classe enfant possède sa propre méthode et n'utilise que trois méthodes héritées de la classe parent, comment la mémoire sera-t-elle allouée pour la classe enfant : en fonction de la nécessité d'allouer de la mémoire pour 16 méthodes, ou en fonction de seulement 4 méthodes réellement utilisées ?

La mémoire de l'objet est allouée aux données, et non aux méthodes. Toutes les méthodes (c'est-à-dire les fonctions) sont stockées dans une seule instance du code exécutable.
 
stringo:
La mémoire d'un objet n'est pas allouée aux méthodes, mais aux données. Toutes les méthodes (c'est-à-dire les fonctions) sont stockées dans une seule instance du code exécutable.
Je pense que je l'ai. Si la même méthode de la classe parent est utilisée dans 10 classes enfant différentes, elle sera toujours stockée dans une seule instance dans le code exécutable.
 

La recherche ne fonctionne pas. Je me répète peut-être, mais la question est la suivante : un objet de classe peut-il se détruire lui-même ? C'est-à-dire que nous obtenons d'abord une référence de l'objet à lui-même dans la classe objet en utilisant le mot réservé this, puis nous appliquons l'opérateur delete au descripteur d'objet (pointeur) correspondant.

Quelque chose comme :

pointer=GetPointer(this);
delete pointer;

Ou est-il préférable de supprimer un objet "en externe" plutôt qu'en "interne" ?

 
GetPointer donne un pointeur d'un type non supprimable. L'objet ne peut pas se supprimer lui-même. Et c'est vrai :)
 
Yedelkin:

........ : Un objet de classe peut-il s'autodétruire ? C'est-à-dire que nous obtenons d'abord une référence de l'objet à lui-même dans la classe object avec le mot réservé this, puis nous appliquons l'opérateur delete au descripteur d'objet (pointeur) correspondant.

Les tendances suicidaires sont un signe certain de considérer la situation dans un contexte trop étroit).

J'ai une contre-question : d'où allez-vous appeler tous ces trucs ? Écrivez un exemple plus pratique, de sorte que vous puissiez voir le fil d'exécution dans votre programme. Comment allez-vous aborder l'objet ?

Laissez-moi vous expliquer. Si l'objet est statique (niveau global) ou automatique (dans la pile), nous n'avons pas besoin de l'adresser. Le système d'exécution l'éliminera automatiquement lorsqu'il sera nécessaire.

Mais si l'objet est dynamique, cela signifie qu'il possède une référence externe qui doit être remise à zéro lors de la suppression.

Il n'y a pas d'autres options.

 
MetaDriver:

Les tendances suicidaires sont un signe certain d'une vision trop étroite de la situation. :)

...
Tu peux m'apprendre à dire des gros mots comme ça ? :о)
Raison: