IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[Op�rateurs] i++ ou ++i


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    136
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 136
    Par d�faut [Op�rateurs] i++ ou ++i
    Salut � tous

    Dans le cas d'un int, il n'y a � ma connaissance aucune diff�rence entre ++i et i++.

    Mais si je cr�e moi m�me une classe, et que je d�finis l'op�rateur ++ (void operator++() ), seule l'expression ++i est reconnue par le compilo.

    Cela signifie sans doute que je pourrais aussi d�finir (diff�remment) l'op�rateur ++ qui s'�crit apr�s comme i++ ? Comment faire ?

    Merci d'avance

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    39
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 39
    Par d�faut
    Pour red�finir l'op�rateur de post-incr�mentation, reprends le prototype de l'op�rateur de pr�-incr�mentation et ajoutes-y un argument de type int (pas la peine de l'utiliser, il n'est l� que pour distinguer la post-incr�mentation de la pr�-incr�mentation).

  3. #3
    Expert confirm�

    Inscrit en
    Ao�t 2006
    Messages
    3 967
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2006
    Messages : 3 967
    Par d�faut
    Foa,
    Citation Envoy� par L. Sierra
    Dans le cas d'un int, il n'y a � ma connaissance aucune diff�rence entre ++i et i++.
    Je n'aurais pas os� �crire �a.

    La diff�rence, tu la connais, puisque tu veux impl�menter la pr�-incr�mentation et la post-incr�mentation.

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    La post-incr�mentation doit retourner l'ancienne valeur (une copie, donc).
    Sur GotW, il est conseill� de l'impl�menter ainsi, en r�utilisant l'op�rateur ++ qu'on vient de red�finir :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    MaClasse MaClasse::operator ++ (int dummy)
    {
       (void)dummy;
     
       MaClasse old(*this);
       ++(*this);
       return old;
    }
    Note qu'on ne retourne pas une r�f�rence ici, puisque c'est une copie.

    �videmment, l'op�rateur de post-incr�mentation n'a de valeur que pour les types copiables. Si ton type est non-copiable, tu ne dois pas d�finir d'op�rateur de post-incr�mentation.
    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.

  5. #5
    R�dacteur
    Avatar de Laurent Gomila
    Profil pro
    D�veloppeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par d�faut
    Juste pour pinailler : moi quand je n'utilise pas un param�tre je pr�f�re l'�crire comme ceci
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    MaClasse MaClasse::operator ++ (int)
    {
       MaClasse old(*this);
       ++(*this);
       return old;
    }

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Binaire] Op�rateurs de rotation dee bits ?
    Par Tifauv' dans le forum C
    R�ponses: 3
    Dernier message: 09/11/2017, 11h29
  2. Op�rateur de statistique
    Par Phil951 dans le forum Langage SQL
    R�ponses: 6
    Dernier message: 26/01/2004, 15h12
  3. Op�rateur like
    Par Troopers dans le forum ASP
    R�ponses: 3
    Dernier message: 15/09/2003, 19h19
  4. R�ponses: 3
    Dernier message: 11/06/2003, 18h07
  5. [imprecis]R�aliser a^n avec seulement l'op�rateur d'addition
    Par Amon dans le forum Algorithmes et structures de donn�es
    R�ponses: 18
    Dernier message: 08/11/2002, 22h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo