opérateurs d'incrémentation : ++Taz vs. Taz++ - C++ - Programmation
Marsh Posté le 29-07-2003 à 00:52:56
d'ou le ++Taz.
D'ailleurs il est ou ton ++pseudo ?
Marsh Posté le 29-07-2003 à 00:55:44
JagStang a écrit : d'ou le ++Taz. |
parti (mass rename) par ce qu'être modo avec des ++ pose un problème
Marsh Posté le 29-07-2003 à 01:04:02
je me disais bien...
Merci pour tes récentes contributions en tout cas
Marsh Posté le 29-07-2003 à 07:53:04
Très intéressant!!
J'ai déjà lu qu'il valait mieux utiliser ++i que i++, mais sans explication ca me paraissait un peu magique...
Je suppose que sur une boucle à la con
Code :
|
on ne gagne pas énormément, tout de même...
Marsh Posté le 29-07-2003 à 08:00:24
Tu gagnes rien avec les types de bases, t'sais pas lire !?
Marsh Posté le 29-07-2003 à 08:05:19
ReplyMarsh Posté le 06-09-2003 à 13:16:58
merci bcp pour cette explication encore
Marsh Posté le 06-09-2003 à 13:48:11
Je vais bientôt pouvoir jeter mon vieux bouquin de C++, tout le contenu sera ici bientôt
merci
Marsh Posté le 06-09-2003 à 13:56:05
drasche a écrit : Je vais bientôt pouvoir jeter mon vieux bouquin de C++, tout le contenu sera ici bientôt |
si quelqu'un me propose un système à la blog pour écrire ça un peu plus joli et faire une bonne mise en forme, faire un petit répertoire d'articles, par ce que sur le forum, tout disparait. ou alors faut que je garde des liens vers tout ça dans ma signature en permanence
edit: et puis non j'ai pas envie de retaper. si les gens sont intéressés, ils feront une recherche.
Marsh Posté le 06-09-2003 à 16:10:32
ReplyMarsh Posté le 06-09-2003 à 16:19:15
ben non. je réponds pas à des questions courantes, j'aime le principe de petit article découverte
Marsh Posté le 06-09-2003 à 16:39:37
ReplyMarsh Posté le 06-09-2003 à 18:22:45
Taz a écrit : si quelqu'un me propose un système à la blog pour écrire ça un peu plus joli et faire une bonne mise en forme, faire un petit répertoire d'articles, par ce que sur le forum, tout disparait. ou alors faut que je garde des liens vers tout ça dans ma signature en permanence |
Un truc comme un wiki ? Ca permet des discutions comme sur un forum mais ça classe les articles par mot clefs et non pas par date.
Marsh Posté le 06-09-2003 à 18:26:58
ouais pourquoi pas
pour tout ce qui ne concerne pas ce topic ->
http://forum.hardware.fr/forum2.ph [...] 234&cat=10
(je nettoirais dans quelques jours)
Marsh Posté le 29-07-2003 à 00:11:00
comme vous le savez déjà, le C++ permet la surcharge d'opérateurs. ce soir, on se penche sur l'opérateur d'incrémentation (tout ce qui sera dit ici est valable pour l'opérateur de décrémentation)
l'opérateur ++ existe sous 2 formes: la post et la pre incrémentation (i++ et ++i). Je ne fais pas de rappels sur l'utilisation.
Nous allons voir comment les surcharger et pourquoi les killers utilisent toujours quand ils le peuvent l'opérateur de pré-incrémentation.
pour la première partie, le code parle de lui même.
- pré-incrémentation Taz& operator++(), pas de problème on peut renvoyer une référence à l'object
- post-incrémentation Taz operator++(int), on revoie une copie selon la sémantique générale (le paramètre int sert uniquement à différencier les versions)
pour la deuxième partie: i++ est en fait une surcouche à ++i. penser à son coportement: incrémenter i et retourner son ancienne valeur, c'est donc tres facile à implémenter à partir de ++i. tout l'enjeu consiste à retourner l'ancienne valeur, il faut donc mémoriser une copie: si on en s'en sert OK, sinon quel gachis! vous allez me dire, ça ne coute rien... mais sur un objet, si. pensez aux itérateurs qui vous permettent de vous ballader à travers de (très) grandes séquences: vous ecriver i++ et à chaque fois vous créez sans le savoir un itérateur inutile. je vous rassure tout de suite, pour les types de bases, le compilateur optimise ce genre de chose. mais pour vos types persos, encore heureux qu'il fasse ce qu'on lui dit. Pensez qu'un itérateur c'est souvent 2/3 pointeurs: j'ai récemment eu l'exemple d'un iterateur pesant 12*8 octets. Les copies inutiles ça peut donc vous pénaliser, et surtout, c'est trop bête puisque c'est inutile.
petit exemple de code pour vous convaincre
Message édité par Taz le 06-09-2003 à 13:22:16