declaration d'une variable et new - C++ - Programmation
Marsh Posté le 06-05-2008 à 14:38:50
tu compiles avec quelles options paske aucune des deux ne devrait passer :E
Obejct* p = new Object;
Marsh Posté le 06-05-2008 à 14:45:59
Au temps pour moi je me suis emmele avec eclipse, il ne compilait pas mon .cpp . je vais essayer de resoudre ca.
Pourquoi le deuxieme code n'est pas correct ?
Marsh Posté le 06-05-2008 à 14:46:46
frankie_flowers a écrit : |
parce que tu n'initialises pas ton pointeur
Marsh Posté le 06-05-2008 à 14:57:38
Bah ca compile sans meme un warning
Je declare Object* o comme attribut de ma classe, et je fais le new dans le constructeur.
Marsh Posté le 06-05-2008 à 15:01:49
On peut en C++ écrire la deuxième syntaxe et rien ne hurle, effectivement.
Mais c'est très très laid. Et surtout ça coredump direct si tu oublies l'initialisation avant d'utiliser la classe (note que c'est pareil si tu mets le pointeur à NULL avant aussi...)
Mieux vaut écrire :
Object * o = NULL;
o = new Object();
ou
Object * o = new Object();
Marsh Posté le 06-05-2008 à 15:06:04
ok je vois
Marsh Posté le 06-05-2008 à 15:26:40
frankie_flowers a écrit : Je declare Object* o comme attribut de ma classe, et je fais le new dans le constructeur. |
C'est très différent du code que tu as donné plus haut.
Marsh Posté le 06-05-2008 à 14:37:22
Je fais appel a vos talents de pedagogue pour une petite question sur les bases.
new est cense retourner un pointeur sur un objet.
Alors pourquoi gcc compile sans erreur ces deux codes (surtout le premier) ?