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
Référence technique. Un exemple de "mécanisme d'enveloppement" lorsque vous travaillez avec des classes (pour ne pas avoir à le chercher) :
https://www.mql5.com/ru/forum/3555/page3#comment_57315
Question. Le nouvel opérateur. Le Manuel de référence indique que new est un opérateur ; cependant, dans les exemples, une vérification est souvent effectuée après l'utilisation de cet opérateur pour s'assurer qu'il est égal à NULL. Par exemple :
Il est également dit que"NULL peut être comparé à des pointeurs vers des objets créés à l'aide de l'opérateur new".
Il s'avère donc que l'opérateur new ne crée pas toujours un nouvel objet ? Ou bien la vérification de l'égalité d'un objet créé à NULL est-elle une particularité du style d'un développeur et n'est-elle pas obligatoire ?
Question. Le nouvel opérateur. Le Manuel de référence indique que new est un opérateur ; cependant, dans les exemples, une vérification est souvent effectuée après l'utilisation de cet opérateur pour s'assurer qu'il est égal à NULL. Par exemple :
Il est également dit que"NULL peut être comparé à des pointeurs vers des objets créés à l'aide de l'opérateur new".
Il s'avère donc que l'opérateur new ne crée pas toujours un nouvel objet ? Ou bien la vérification de l'égalité d'un objet créé à NULL est-elle une particularité du style d'un développeur et n'est-elle pas obligatoire ?
Si vous créez un objet dynamique à un endroit du programme, il est logique que vous le détruisiez à un autre endroit, et il n'est pas certain que tout cela se fasse au sein d'une même fonction. Une règle simple consiste donc à vérifier son existence avant d'utiliser un pointeur.
C'est exact. Mais dans les exemples du Manuel de référence, la vérification est effectuée immédiatement après la création de l'objet, c'est-à-dire à un endroit du programme et dans une seule fonction. Et la règle donnée ici n'est pas tout à fait pertinente. Pourquoi le contrôle devrait-il être effectué juste après la création d'un objet ? Il s'avère donc que l'opérateur new ne crée pas toujours un nouvel objet ? =(Je répète)=
Voici un exemple parmi tant d'autres :
C'est exact. Mais dans les exemples du Manuel de référence, la vérification est effectuée immédiatement après la création de l'objet, c'est-à-dire à un seul endroit du programme et dans une seule fonction. Et la règle ci-dessus n'est pas applicable ici. Pourquoi le contrôle devrait-il être effectué juste après la création de l'objet ? Il s'avère donc que l'opérateur new ne crée pas toujours un nouvel objet (je le répète) ?
Voici un exemple parmi tant d'autres :
Il y a une telle possibilité. Dans la référence, le premier paragraphe.
OK. Il s'avère que le comportement de l'opérateur est celui d'une fonction. Elle peut être créée ou non.
Par exemple, il n'y avait pas assez de mémoire pour un objet.
Question. Une fois qu'une fonction virtuelle avec un ensemble spécifique de paramètres et de types est déclarée dans une classe mère, le nombre et les types de paramètres des fonctions virtuelles correspondantes peuvent-ils être modifiés dans les classes dérivées ?
D'une part, le Manuel de référence indique qu'"une fonction virtuelle peut être substituée dans une classe dérivée . Lechoix de ladéfinition de fonction à appeler pour la fonction virtuelle est fait dynamiquement (au moment de l'exécution). Un cas typique est celui où une classe de base contient et les classes dérivées ont leurs propres versions de cette fonction". D'autre part, les exemples donnés dans le Manuel de référence font référence aux cas où les fonctions virtuelles ont des corps de définition de fonction différents plutôt que des en-têtes de définition de fonction.
Question. Après avoir déclaré une fonction virtuelle avec un certain ensemble de paramètres et leurs types dans une classe parent, est-il possible de changer le nombre et les types de paramètres des fonctions virtuelles correspondantes dans les classes enfants ?