je commence à jeter un coup d'oeil à la surcharge de l'opérateur new (en
tant qu'opérateur de classe).
Et j'avoue qu'à part d'interdire l'allocation dans le tas et gérer les
problémes de mémoire, je n'ai pas trouvé d'autres utilités.
Quelqu'un peut-il me donner d'autres raisons de surcharger cet opérateur ?
Y a-t-il des exemples où la surcharge de cet opérateur est utilisé ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
kanze
Dezz wrote:
je commence à jeter un coup d'oeil à la surcharge de l'opérateur new (en tant qu'opérateur de classe).
Et j'avoue qu'à part d'interdire l'allocation dans le tas et gérer les problémes de mémoire, je n'ai pas trouvé d'autres utilités. Quelqu'un peut-il me donner d'autres raisons de surcharger cet opérateur ? Y a-t-il des exemples où la surcharge de cet opérateur est utilisé ?
La plupart du temps, c'est pour donner un allocateur optimisé au type. Si la taille de l'allocation est constante et connue d'avance, on peut faire beaucoup mieux que les allocateurs plus générique.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Dezz wrote:
je commence à jeter un coup d'oeil à la surcharge de
l'opérateur new (en tant qu'opérateur de classe).
Et j'avoue qu'à part d'interdire l'allocation dans le tas et
gérer les problémes de mémoire, je n'ai pas trouvé d'autres
utilités. Quelqu'un peut-il me donner d'autres raisons de
surcharger cet opérateur ? Y a-t-il des exemples où la
surcharge de cet opérateur est utilisé ?
La plupart du temps, c'est pour donner un allocateur optimisé au
type. Si la taille de l'allocation est constante et connue
d'avance, on peut faire beaucoup mieux que les allocateurs plus
générique.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
je commence à jeter un coup d'oeil à la surcharge de l'opérateur new (en tant qu'opérateur de classe).
Et j'avoue qu'à part d'interdire l'allocation dans le tas et gérer les problémes de mémoire, je n'ai pas trouvé d'autres utilités. Quelqu'un peut-il me donner d'autres raisons de surcharger cet opérateur ? Y a-t-il des exemples où la surcharge de cet opérateur est utilisé ?
La plupart du temps, c'est pour donner un allocateur optimisé au type. Si la taille de l'allocation est constante et connue d'avance, on peut faire beaucoup mieux que les allocateurs plus générique.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Brieuc Jeunhomme
Quelqu'un peut-il me donner d'autres raisons de
surcharger cet opérateur ? Y a-t-il des exemples où la surcharge de cet opérateur est utilisé ?
La plupart du temps, c'est pour donner un allocateur optimisé au type. Si la taille de l'allocation est constante et connue d'avance, on peut faire beaucoup mieux que les allocateurs plus générique.
Je m'en sers aussi pour deux autres raisons: la première, c'est pour remplacer l'allocateur par quelque chose dont je connais le fonctionnement, et dont je me sers d'une manière un peu crade pour faire un garbage collector, la deuxième, c'est dans un programme multi process, pour dire que les objets d'une certaine classe doivent toujours être alloués en shared memory, tout simplement en la dérivant d'une classe dont j'ai surchargé le new.
Ça peut servir en debug, pour avoir des traces de toutes les allocations quand on est à la recherche de la mémoire perdue, bien qu'il y ait des outils plus efficaces pour ça.
On pourrait aussi imaginer, bien que ce soit tordu, de se servir de cette technique pour écrire dans un fichier mappé en mémoire, par exemple si on doit y mettre plusieurs structures se suivant les unes les autres.
Dernier exemple, si on veut par exemple lire un mot de passe et qu'on veut la garantie que l'OS ne le swappera pas, on peut vouloir allouer de la mémoire d'une manière particulière.
-- BBP
Quelqu'un peut-il me donner d'autres raisons de
surcharger cet opérateur ? Y a-t-il des exemples où la
surcharge de cet opérateur est utilisé ?
La plupart du temps, c'est pour donner un allocateur optimisé au
type. Si la taille de l'allocation est constante et connue
d'avance, on peut faire beaucoup mieux que les allocateurs plus
générique.
Je m'en sers aussi pour deux autres raisons: la première, c'est pour
remplacer l'allocateur par quelque chose dont je connais le
fonctionnement, et dont je me sers d'une manière un peu crade pour
faire un garbage collector, la deuxième, c'est dans un programme multi
process, pour dire que les objets d'une certaine classe doivent
toujours être alloués en shared memory, tout simplement en la dérivant
d'une classe dont j'ai surchargé le new.
Ça peut servir en debug, pour avoir des traces de toutes les allocations
quand on est à la recherche de la mémoire perdue, bien qu'il y ait des
outils plus efficaces pour ça.
On pourrait aussi imaginer, bien que ce soit tordu, de se servir de
cette technique pour écrire dans un fichier mappé en mémoire, par
exemple si on doit y mettre plusieurs structures se suivant les unes
les autres.
Dernier exemple, si on veut par exemple lire un mot de passe et qu'on
veut la garantie que l'OS ne le swappera pas, on peut vouloir allouer
de la mémoire d'une manière particulière.
surcharger cet opérateur ? Y a-t-il des exemples où la surcharge de cet opérateur est utilisé ?
La plupart du temps, c'est pour donner un allocateur optimisé au type. Si la taille de l'allocation est constante et connue d'avance, on peut faire beaucoup mieux que les allocateurs plus générique.
Je m'en sers aussi pour deux autres raisons: la première, c'est pour remplacer l'allocateur par quelque chose dont je connais le fonctionnement, et dont je me sers d'une manière un peu crade pour faire un garbage collector, la deuxième, c'est dans un programme multi process, pour dire que les objets d'une certaine classe doivent toujours être alloués en shared memory, tout simplement en la dérivant d'une classe dont j'ai surchargé le new.
Ça peut servir en debug, pour avoir des traces de toutes les allocations quand on est à la recherche de la mémoire perdue, bien qu'il y ait des outils plus efficaces pour ça.
On pourrait aussi imaginer, bien que ce soit tordu, de se servir de cette technique pour écrire dans un fichier mappé en mémoire, par exemple si on doit y mettre plusieurs structures se suivant les unes les autres.
Dernier exemple, si on veut par exemple lire un mot de passe et qu'on veut la garantie que l'OS ne le swappera pas, on peut vouloir allouer de la mémoire d'une manière particulière.