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
Cela signifie que vous devez créer une instance en utilisant l'opérateur new.
Il y a une chose que je ne comprends pas. Quelles sont les bonnes raisons d'imposer l'utilisation du nouvel opérateur ? C'est bon sans ça ?
Elle est nécessaire si vous voulez créer des objets de manière dynamique. Si vous ne savez pas à l'avance combien d'objets et quels types d'objets seront nécessaires.
Так я вот одного не пойму. Какие веские причины принуждают к использованию оператора new ? Без него типа никак?
C'est nécessaire si vous devez créer des objets de façon dynamique. Si vous ne savez pas à l'avance combien d'objets et quels types d'objets sont nécessaires,
.
Vous pouvez utiliser des tableaux de classes dynamiques. Dans MQL, cela fonctionnera. En C++, l'initialisation des membres d'une classe peut poser des problèmes. C'est pourquoi il est préférable de mettre un pointeur intelligent dans le tableau. Ainsi, vous n'avez pas à vous occuper de l'initialisation des classes et du nettoyage de la mémoire.
Comment cette construction est-elle "lue" ?
Ah, en particulier :
Je le regarde et je ne comprends pas l'essentiel de ce qui se passe...Comment cette construction est-elle "lue" ?
ptr est converti en type (classe) cFather et saméthode (cFather) GetData() est appelée
quelque chose comme ça...
ptr est converti en type (classe) cFather et saméthode (cFather) GetData() est appelée
quelque chose comme ça...
C'est un truc bizarre... Je le pensais approximativement, mais... c'est trop pour être coulé dans un type (classe). En programmation de toute façon, d'après ce que j'ai entendu, il n'est pas recommandé de faire un cast vers un type (classe). Mais il ne s'agit pas seulement d'une conversion de type standard, mais plutôt d'une conversion de classe.
Reprenons ce code une fois de plus :
Ici, dans les paramètres du prototype de la fonction f, nous pouvons clairement voir que la fonction f prend une méthode de la classe cFather dans les paramètres. De plus, nous voyons la situation suivante dans le code START :
f(ptr); // вернет 3
Dans ce cas, la fonction f prend un pointeur vers la classe cChild, plutôt qu'une méthode de la classe cFather. Depuis cChild obj, *ptr = GetPointer( obj ) ;
Quelle est la logique derrière tout ça ?
mm... logique où ?
dans la méthode f(), je pense que la logique est que le paramètre entrant sera traité correctement pour cFather (ou ses descendants).
mm... logique où ?
dans la méthode f(), je pense que la logique veut que le paramètre entrant soit correctement traité pour cFather (ou ses descendants).
I.e.
ici *p est un pointeur vers cFather?
En même temps, j'étudie le C++ et je suis un peu dérouté par un vocabulaire similaire. Les pointeurs ne sont pas les mêmes ici.
I.e.
ici *p est un pointeur vers cFather?
En même temps, j'étudie le C++ et je suis un peu dérouté par un vocabulaire similaire. Mais les indications ne sont pas les mêmes.
Cela fait deux semaines que je n'ai pas eu de question. J'ai décidé de le demander. Ce n'est pas trop compliqué, mais logiquement je me demande si c'est une option. Voici le code :
Il n'y a que 2 fonctions publiques dans ce code :
Et les 2 fonctions privées sont appelées directement par la fonction publique, ou plutôt la fonction publique, au moment du besoin. Ce qui est intéressant, c'est que la fonction void SetName(string n) a le paramètre n, mais les deux méthodes privées : string GetFirstName(string full_name) et string GetLastName(string full_name) pour une raison quelconque n'ont pas le même paramètre. Bien que si vous prenez ce même code (et non l'autre), les méthodes privées sont appelées par les méthodes publiques avec les mêmes paramètres et il n'y a pas d'autre moyen. Alors pourquoi devrais-je donner des noms différents aux paramètres ?
J'espère que la question est claire.