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
Allez ! Je l'utilise tout le temps.
Où ? Dans quel lieu et comment ?
Modérateurs, désolé de répéter la question. Je veux vraiment obtenir une réponse à cette question.
Pourquoi réaffecter intentionnellement un pointeur passé à une fonction? Bien sûr, il y aura une fuite. Mais il ne s'agit pas d'une "fuite classique", mais d'une erreur classique de travail avec un pointeur sur un objet.
Il n'est pas nécessaire de créer un nouvel objet ici, mais de manipuler l'objet externe dont le pointeur a été passé dans la fonction.
Où ? Dans quel lieu et comment ?
Modérateurs, désolé de répéter la question. Je veux vraiment obtenir une réponse à cette question.
Où ? Dans quel lieu et comment ?
Modérateurs, désolé de répéter la question. Je veux vraiment obtenir une réponse à cette question.
Si je comprends bien la question, nous déclarons la classe comme un objet en utilisant new.
Utilisez ensuite un point pour appeler les méthodes publiques de la classe à travers l'objet créé.
Après l'exécution de toutes les méthodes appelées, nous vidons la mémoire en supprimant l'objet créé delete.
Si j'ai bien compris la question, nous déclarons la classe comme un objet en utilisant new.
Ensuite, nous appelons les méthodes publiques de la classe à travers l'objet créé, en utilisant un point.
Après l'exécution de toutes les méthodes appelées, nous vidons la mémoire en supprimant l'objet créé delete.
Non. Au début, je pensais qu'il s'agissait d'un paramètre de fonction comme celui-ci - objet mais pas par référence, mais il y a un point-virgule à la fin. S'il s'agit d'une création d'objet normale lors de la déclaration, alors pourquoi est-elle entre parenthèses ? Pour l'instant, cela reste le mystère du siècle.
Non. Au début, je pensais qu'il s'agissait d'un paramètre de fonction comme celui-ci - objet mais pas par référence, mais il y a un point-virgule à la fin. S'il s'agit d'une création d'objet normale lors de la déclaration, alors pourquoi est-elle entre parenthèses ? Pour l'instant, cela reste le mystère du siècle.
Et pourquoi avoir délibérément réassigné un pointeur passé à une fonction? Bien sûr, il y aura une fuite. Mais il ne s'agit pas d'une "fuite classique", mais d'une erreur classique de manipulation d'un pointeur sur un objet.
Il n'est pas nécessaire de créer un nouvel objet ici, mais de manipuler l'objet externe dont le pointeur a été transmis à la fonction.
Il ne s'agit pas de mon exemple, mais de l'implémentation des pointeurs eux-mêmes dans MQL - si vous n'avez pas besoin de les déréférencer (et que le pointeur peut être assigné à une instance de l'objet !), si au lieu de passer un pointeur, vous pouvez passer une référence à l'objethttps://www.mql5.com/ru/forum/1111/page2471#comment_11796665.
ici nous n'avons pas d'information détaillée sur où et quand (CObj& obj) est apparu (& n'est pas une opération de déréférencement de pointeur, mais l'acquisition d'un pointeur GetPointer() )
Ok, je ne veux pas gaspiller d'informations... Je me suis déjà dit, et je le répète encore une fois sur ce forum - MQL n'est pas C++, c'est comme ça qu'il est implémenté - eh bien, je n'ai pas d'autres options
Il ne s'agit pas de mon exemple, mais de l'implémentation des pointeurs eux-mêmes dans MQL - si vous n'avez pas besoin de les déréférencer (et que le pointeur peut être assigné à une instance de l'objet !), si au lieu de passer un pointeur, vous pouvez passer une référence à l'objet https://www.mql5.com/ru/forum/1111/page2471#comment_11796665.
ici nous n'avons pas d'information détaillée sur où et quand (CObj& obj) est apparu (& n'est pas une opération de déréférencement de pointeur, mais l'acquisition d'un pointeur GetPointer() )
Ok, je ne veux pas gaspiller d'informations... Je me suis déjà dit, et je le répète encore une fois sur ce forum - MQL n'est pas C++, c'est comme ça qu'il est implémenté - eh bien, je n'ai pas d'autres options
Vous êtes dramatique, il n'y a pas de complexités et de confusions.
Les parenthèses sont dues au fait qu'il s'agit d'une note sur le texte)))).
Alors voilà.
Comme ça :
void z(CObj * o){ }
Pas seulement peut, mais mieux, car vous pouvez l'appeler comme ça :
z(GetPointer(obj));
Si vous passez un pointeur par référence, vous avez besoin d'une autre variable pour le pointeur.
***
Et si un pointeur doit être transmis à une fonction pour créer un objet dans la fonction, voici comment cela fonctionne :
C'est en gros tout ce que vous vouliez savoir sur la POO, mais que vous n'osiez pas demander))).