Bonjour,
vu que m'as question �t� pass� � la trappe
je fait un nouveau post pour ne pas polluer.
Qu'elle est la diff�rence entre
const A* aa;
et A* const aa;
merci.
Bonjour,
vu que m'as question �t� pass� � la trappe
je fait un nouveau post pour ne pas polluer.
Qu'elle est la diff�rence entre
const A* aa;
et A* const aa;
merci.
L'object A pointe par aa est constant. Il n'est pas modifiable. Le pointeur lui meme peut etre modifie pour pointer sur autre chose.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2const A* aa;
Le pointeur aa est constant. L'adresse qu'il contient ne peut pas etre modifiee. Par contre il n'est pas interdit de modifier la valeur pointee.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2A* const aa;
Donc pour finir
mais avec les references??const int a <=> int const a
mais pourconst int & a <=>int const & a
cela donnerai quoi??int & const a
int & const a n'est � ma connaissance pas accept� par le compilateur. De toute fa�on, la r�f�rence est forc�ment non-modifiable, donc c'est comme si elles avaient toutes le const apr�s le &...
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
En fait, le const s'applique toujours sur l'objet juste avant lui... Si jamais il n'y a rien avant, alors on inverse et on le met sur celui apr�s
Exemple :
Ici il n'y a rien avant const, alors cel� devient automatiquement
Code : S�lectionner tout - Visualiser dans une fen�tre � part const int a;
Dans ton premier exemple, c'est assez clair aussi :
Code : S�lectionner tout - Visualiser dans une fen�tre � part int const a;
devient :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2const A* aa;
L'objet lui m�me ne peut pas �tre modifi�...
Code : S�lectionner tout - Visualiser dans une fen�tre � part A const * aa;
Et dansle const porte bien sur le pointeur. C'est lui qui ne peut pas �tre modifi�...
Code : S�lectionner tout - Visualiser dans une fen�tre � part A* const aa;
![]()
Alors en theorie ca ne sert a rien :-D.
On utilise parfois l'ecriture
pour creer un pointeur constant. C'est a dire qui possede le meme comportement qu'une reference (objet pointe qui ne peut etre change), a la difference pret qu'on peut initialiser un tel pointeur a NULL.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 int * const a = var;
Sauf bricolage moche, une reference ne peut pas etre nulle.
En pratique, ca ne compile pas :-D.
(en tout cas avec g++ ca ne compile pas).
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...
Partager