Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1919 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  declaration d'une variable et new

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

declaration d'une variable et new

n°1729044
frankie_fl​owers
Posté le 06-05-2008 à 14:37:22  profilanswer
 

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) ?
 

Code :
  1. Object o;
  2. o = new Object();


 

Code :
  1. Object* o;
  2. o = new Object();

mood
Publicité
Posté le 06-05-2008 à 14:37:22  profilanswer
 

n°1729047
Joel F
Real men use unique_ptr
Posté le 06-05-2008 à 14:38:50  profilanswer
 

tu compiles avec quelles options paske aucune des deux ne devrait passer :E
 
Obejct* p = new Object;
 

n°1729056
frankie_fl​owers
Posté le 06-05-2008 à 14:45:59  profilanswer
 

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 ?

n°1729057
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 06-05-2008 à 14:46:46  profilanswer
 

frankie_flowers a écrit :


 
Pourquoi le deuxieme code n'est pas correct ?


parce que tu n'initialises pas ton pointeur

n°1729067
frankie_fl​owers
Posté le 06-05-2008 à 14:57:38  profilanswer
 

Bah ca compile sans meme un warning :??:
Je declare Object* o comme attribut de ma classe, et je fais le new dans le constructeur.

n°1729070
Elmoricq
Modérateur
Posté le 06-05-2008 à 15:01:49  profilanswer
 

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();


Message édité par Elmoricq le 06-05-2008 à 15:02:51
n°1729071
frankie_fl​owers
Posté le 06-05-2008 à 15:06:04  profilanswer
 

ok je vois :jap:


Message édité par frankie_flowers le 06-05-2008 à 15:06:12
n°1729084
masklinn
í dag viðrar vel til loftárása
Posté le 06-05-2008 à 15:26:40  profilanswer
 

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.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  declaration d'une variable et new

 

Sujets relatifs
Declaration variable[updated]- [c] centraliser declaration de variable.
Convertir une chaine en déclaration de variablepb de declaration d'une variable UInt64
ComboBox et déclaration de variable...declaration de variable
probleme de declaration de variable[Oracle] Déclaration de variable "Table of" ??
déclaration variable, chaine de caractère[PHP] + [JS] Concaténé pour la déclaration d'une variable JS
Plus de sujets relatifs à : declaration d'une variable et new


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR