Citation:
les pointers ne sont pas a eviter bien au contraire, sinon pas de polymorphisme et donc un au revoir a beaucoup d'avantages.
Les pointeurs sont à éviter parce qu'ils sont dangereux.
Il semble que tu n'aies pas entendu parler des principes de base pour du bon C++ : RAII (Resource Acquisition Is Initialization), SBRM (Scope Bound Resource Management)...
Citation:
les shared_ptr ne sont pas non plus une solution a tout. ils induisent en outre une perte de performance et une augmentation memoire. mimimes dans certains cas, penalisantes pour d'autre.
Je n'en ai jamais ressenti le besoin, n'ayant pas besoin de ressource dont l'appartenance est partagée par plusieurs objets, mais j'imagine que ça simplifie certains cas, autrement moins triviaux que ceux dont on parle, étant donné que ça introduit un ramasse-miettes déterministe.
De toutes façons je n'ai jamais parlé de ça en particulier. La solution aux conteneurs polymorphes c'est les conteneurs pour pointeurs de boost. Pour d'autres cas on peut avoir besoin de std::auto_ptr ou autre.
Citation:
Je n'ai pas bien compris "Le seul moyen d'écrire du code exception-safe de manière convenable est d'utiliser les destructeurs."
Peut-être ne sais-tu pas ce qu'est l'exception safety.
Voici donc un extrait de TC++PL [en] qui pourrait t'aider dans ce cas.
Citation:
quel rapport avec les pointers ?
La mémoire libre allouée avec "new" ne se libère pas toute seule.
Enfin le rapport est tellement évident que je me demande pourquoi tu poses cette question.
Citation:
Oui je le repete, beaucoup de gens veulent le C++ (pour le prestige?) sans avoir a gerer la memoire (a la Java en fait).
C++ et Java sont des langages différents, et qui donc ont des façons différentes de conceptualiser les choses.
En particulier, la façon de gérer la mémoire y est très différente, surtout avec l'approche que je préconise. Contrairement à la façon d'utiliser des pointeurs et des allocations dynamiques, qui formellement ne différencie que par la non présence d'un ramasse-miettes.
Citation:
Mais le C++ tire sa flexibilité des pointers et de la gestion manuelle de la memoire, c'est ce qui permet de faire au mieux les structures de données.
Les structures de données ne sont écrites qu'une seule fois, ce n'est pas en ça que consiste le travail du développeur.
Les intérêts du C++ sont sa généralité (conçu pour pouvoir programmer tout et n'importe quoi), sa rapidité, sa sécurité, sa modularité, sa généricité et ses capacités d'abstraction.