L'EOP pour les écoliers. - page 14

 
Alexey Viktorov:

Une autre question : quelle est la différence entre déclarer une variable, obtenir/créer un pointeur, créer une instance d'objet. Il ne s'agit pas de la différence, mais de savoir dans quels cas il est préférable de l'utiliser. Par exemple, il suffit de déclarer une variable pour ouvrir une position.

Et dans quels cas il est préférable d'utiliser le pointeur, et dans quels cas on ne peut pas se passer de l'instance de l'objet.

Quels sont les avantages et les inconvénients d'une méthode ou d'une autre ?

Alors, entrez dans le vif de ce cours, il est disponible dans le fromage. Rien d'important n'y est créé, juste un ensemble de méthodes.

 
Alexey Viktorov:

C'est donc pour comprendre ce qu'il faut choisir que la question a été posée. Pas pour un concours de sorciers.

Je ne suis pas sobre maintenant, même très sobre, mais je vais essayer. Si la fiabilité est votre première veine, alors suivre le principe RAII est votre tout, si possible (vous déclarez un objet, le compilateur le tuera quand il quittera la zone de visibilité). Si vous voulez une efficacité du code, tout va dans le sens des pointeurs. Il appartient donc à chaque tâche d'y réfléchir, il n'y a pas de solution universelle.
 
Alexey Viktorov:

C'est donc pour comprendre ce qu'il faut choisir que la question a été posée. Pas pour un concours de sorciers.

De la façon dont je le comprends.
Si un objet est créé par pile, alors seulement pour les objets qui ne vivent pas longtemps et qui ont besoin de la rapidité pour créer un objet, par exemple une classe pour travailler avec des requêtes.
Les objets sur le tas devraient être créés pour les objets à longue durée de vie qui ne nécessitent pas une super vitesse, ou qui sont importants pour éviter de les perdre.
Parfois, par exemple dans VS, le compilateur ne vous laisse pas choisir une pile et vous propose uniquement un tas, c'est-à-dire qu'il vous dit ce qui est le mieux pour cet objet.

 
Roman:

De la façon dont je le comprends.
Si un objet est créé par pile, alors seulement pour les objets qui ne vivent pas longtemps et qui ont besoin de la rapidité de création d'un objet, par exemple, une classe pour travailler avec des requêtes.
Les objets sur le tas devraient être créés pour les objets à longue durée de vie qui ne nécessitent pas une super vitesse, ou qui sont importants pour éviter de les perdre.
Parfois, par exemple dans VS, le compilateur ne vous laisse pas choisir une pile et vous propose uniquement un tas, c'est-à-dire qu'il vous dit ce qui est le mieux pour cet objet.

Non. J'avoue que je me suis aussi trompé il y a quelque temps. Lorsqu'un objet est créé sur la pile, il est de toute façon alloué dans le tas, seul le pointeur est créé sur la pile. Simplement, lorsque vous déclarez CObg obj, son destructeur est garanti d'être appelé lorsque obj quitte la portée.
 
Vladimir Simakov:
Non, je ne le fais pas. Je suis désolé, je me suis aussi trompé une fois. Lorsqu'un objet est créé sur la pile, il est de toute façon alloué dans le tas, seul le pointeur est créé sur la pile. C'est juste que lorsque l'on déclare CObg obj, son destructeur est garanti d'être appelé lorsque obj quitte sa zone de visibilité.

Peut-être qu'il sera alloué sur le tas, je ne sais pas ;))
Mais de nombreuses personnes affirment que l'objet est créé plus rapidement sur la pile.
Apparemment tout le monde se trompe à ce sujet, je ne sais pas ;))

 
Roman:

Peut-être qu'il s'alloue à la pile, je ne sais pas ;))
Mais beaucoup de gens affirment que sur la pile, l'objet est créé plus rapidement.
Apparemment tout le monde se trompe à ce sujet, je ne sais pas ;))

Qu'est-ce qui vous empêche, en cas de doute, d'y aller ? Pourquoi continuer à s'en moquer s'il a déjà été testé et prouvé ?

 
Dmitry Fedoseev:

Qu'est-ce qui vous empêche, en cas de doute, d'y aller ? Pourquoi continuer à faire des conneries alors que cela a déjà été testé et prouvé ?

Je n'ai aucun doute.) Mais aussi pour vérifier que, d'une manière ou d'une autre, on n'en est pas arrivé là.
Vous venez d'en parler tout à l'heure, donc si cela a déjà été testé et prouvé, nous pouvons vous faire confiance en tant que vieux routier du codage ;)).
Je ne me soucie pas vraiment de cette différence, de cette pile, de ce tas, mais parfois je le fais.

 

Les gars, je suis un rétrograde, mais : il y a une pile (quand la première valeur stockée est récupérée en dernier) et une file d'attente (quand le premier entré est le premier sorti).

Qu'est-ce qu'un tas ?

 
Alexey Viktorov:

C'est donc pour comprendre ce qu'il faut choisir que la question a été posée. Pas pour un quizz des sorciers.

Oui, j'ai oublié d'ajouter que si vous créez plusieurs objets sur un tas, il est recommandé de les supprimer dans l'ordre inverse de leur création.

 
Roman:

Oui, j'ai oublié d'ajouter que si plusieurs objets sont créés sur le tas, il est recommandé de les supprimer dans l'ordre inverse de leur création.

Le tas est donc une pile.

Raison: