const: Est-ce vraiment utile?

const: Est-ce vraiment utile? - C++ - Programmation

Marsh Posté le 20-07-2004 à 22:01:55    

Je programme en C++ depuis un petit bout de temps maintenant et je n'ai jamais vraiment utilisé le mot clef 'const' (à part dans la surcharge de certains opérateurs qui le nécessitent).
j'ai donc décidé de me réécrire un programme en mettant les 'const' là où il faut (surtout pour le passage de paramètres par pointeur ou par référence et pour indiquer qu'une méthode ne doit pas modifier l'objet) et je me rend compte que c'est vraiment plus contraignant qu'utile.
Donc j'aimerais votre avis. Est-ce que vous pensé que l'utilisation est vraiment utile et est-ce que vous-même, vous l'utilisez?

Reply

Marsh Posté le 20-07-2004 à 22:01:55   

Reply

Marsh Posté le 20-07-2004 à 22:05:45    

déjà qu'en C le const est indispensable, je sais pas comment tu fais. tu dis ne jamais avoir vraiment utilisé const ? c'est une faute grave, la constness est quelque chose de très inmportant, mais c'est vrai qu'avec un compilateur laxatif, ça peut passer inaperçu. Mais en. Mais en partout. Soit parano. Dès que quelque chose est constant, que tu le modifies pas, marque le const. Tous les accesseurs d'un TAD doivent être marqués const. Quand tu passes les objets par référence ou pointeur, c'est essentiel.

Reply

Marsh Posté le 20-07-2004 à 22:06:47    

C'est justement parce que c'est contraignant que c'est utile.
Les caiplusplusistes sont masochistes.

Reply

Marsh Posté le 20-07-2004 à 22:07:58    

ça permet également des optimisations de fou(rbe)?

Reply

Marsh Posté le 20-07-2004 à 22:09:43    

Taz > faudrait argumenter aussi
 
Par ex: "const roulaize, const_cast suxxxx"


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 20-07-2004 à 22:13:33    

mais c'est fait. l'absence de const est un problème grave. Sans, tu n'est pas en mesure de garantir l'intégrité d'un objet, il n'y aura personne pour te dire si tu le modifies malgré toi. Et comme tu passes souvent les objets par pointeur/référence, tu risques de bousiller tes paramètres

Reply

Marsh Posté le 20-07-2004 à 22:14:36    

schnapsmann a écrit :

Taz > faudrait argumenter aussi
 
Par ex: "const roulaize, const_cast suxxxx"

Quand tu fais ton TAD, tu définis des observateurs. Traduire un observateur en C++, c'est le marquer comme const. Ce n'est pas un problème de C++.

Reply

Marsh Posté le 20-07-2004 à 22:19:08    

non mais bon, je veux juste que les gens sachent à quoi s'en tenir, à avoir que le const est une aide à la bonne conception et non une assurance de non mutabilité absolue


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 20-07-2004 à 22:24:53    

Merci pour vos réponses ;)
 
Taz: C'est quoi un TAD??

Reply

Marsh Posté le 20-07-2004 à 22:26:26    

Taz a écrit :

avec un compilateur laxatif


laxiste?  :heink:

Reply

Marsh Posté le 20-07-2004 à 22:26:26   

Reply

Marsh Posté le 20-07-2004 à 22:28:46    

Et... une autre question:
Lorsque l'on passe un paramètre par pointeur et que l'on ne veut pas que ce paramètre ne soit modifié (ni l'adresse pointé, ni la valeur de l'objet pointé), il faut simplement faire un: "const type *MonPointeur" ou "const type *const MonPointeur" ou autrement?!

Reply

Marsh Posté le 20-07-2004 à 22:30:48    

_momone_ a écrit :

ni l'adresse pointé, ni la valeur de l'objet pointé


[:rofl]
 
bon on reprends:
 
const Foo* ptr
l'objet pointé n'est pas autorisé à être modifié via ptr
 
Foo const* ptr
ptr pointe toujours sur la même chose


Message édité par schnapsmann le 20-07-2004 à 22:34:03

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 20-07-2004 à 22:33:43    

Reply

Marsh Posté le 20-07-2004 à 23:09:36    

_momone_ a écrit :

Merci pour vos réponses ;)
 
Taz: C'est quoi un TAD??

un ADT

Reply

Marsh Posté le 20-07-2004 à 23:27:18    

Merci Taz!!!! :)
En gros, c'est une interface.


Message édité par _momone_ le 20-07-2004 à 23:29:16
Reply

Marsh Posté le 20-07-2004 à 23:30:43    

le const n'est pas utile  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
il est indispensable !
 
L'utiliser démontre que tu as COMPRIS ce qui arrive à tes objets !


Message édité par Joel F le 21-07-2004 à 10:18:12
Reply

Marsh Posté le 20-07-2004 à 23:52:24    

Joel F a écrit :


L'utiliser démontre que tu as COMPRIS ce qui arriver à tes objets !


ça fait tout de suite moins convaincant  :whistle:


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 20-07-2004 à 23:54:22    

de quoi plait il ?

Reply

Marsh Posté le 20-07-2004 à 23:56:09    

Fokyu gozaymas [:ojap]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 21-07-2004 à 00:03:47    

Dixit ta signature :
 
"Le fantôme de ton frère siamois t' écartèle les fesses avec une pierre ponce comme le faisait Attila, pet décomposé !!!! "

Reply

Marsh Posté le 21-07-2004 à 09:38:48    

Joel F a écrit :

L'utiliser démontre que tu as COMPRIS ce qui arrivent à tes objets !

C'est mieux, mais c'est pas encore ca!   :whistle:

Reply

Marsh Posté le 21-07-2004 à 10:12:02    

euh ... le sujet de la proposition etant 'qui', lui meme mis pour 'ce', qui est singulier, arrive prend pas ent donc :o


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 21-07-2004 à 10:18:24    

mais de quoi parler vous :o [:dawa]

Reply

Marsh Posté le 21-07-2004 à 10:19:00    

Joel F a écrit :

mais de quoi parler vous :o [:dawa]


[:rofl]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-07-2004 à 10:28:01    

Citation :

mais c'est vrai qu'avec un compilateur laxatif


Citation :

de Ace17
laxiste?  :heink:


C'était un jeu de mot je pense [:aloy]
 
Compilateur laxatif = compilateur a chier


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

Marsh Posté le 21-07-2004 à 10:39:58    


 
mince spotted :p

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed