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 :

red�finition de operator/=


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Juin 2006
    Messages
    98
    D�tails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 98
    Par d�faut red�finition de operator/=
    bonjour, je voudrais savoir comment red�finir operator/=.
    Est-ce qu'il est externe, interne?
    Faut-il le mettre en 'friend' dans le .hh?
    Combien de param�tres prend la fonction?Qu'est-ce que �a retourne?
    etc...

    Je ne crois pas qu'il en soit question dans la FAQ.
    Si vous avez des liens internet aussi...

    merci pour toutes les informations que vous pourrez me donner.

  2. #2
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Il peut �tre interne avec un seul argument ou externe avec 2 arguments. le friend peut �tre utile mais � �viter dans le cas de l'utilisation en externe.
    Ca retourne toujours une r�f�rence sur lui-m�me.

  3. #3
    Membre confirm�
    Inscrit en
    Juin 2006
    Messages
    98
    D�tails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 98
    Par d�faut
    Ce que tu dis s'applique � tous les op�rateurs?

    le friend peut �tre utile mais � �viter dans le cas de l'utilisation en externe
    J'ai red�fini l'op�rateur << comme �a:
    fichier.hh
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    friend std::ostream& operator<<(std::ostream& o, Image& im);
    fichier.cc
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    std::ostream& operator<<(std::ostream& o, Image& im) {
    // ...
    }
    C'est la seule mani�re que j'ai trouv� pour que �a marche. J'ai mis 'friend' alors que d'apr�s ce que j'ai compris, mon operator<< est externe. ou alors le fait de le mettre dans le .hh fais de lui un op�rateur interne.
    Je sais plus trop comment faire du coup.

  4. #4
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Ca marche pour tous les op�rateurs. En fait, un op�rateur interne, c'est comme un externe avec comme premier argument l'instance de la classe sur laquelle l'op�ration est appel�e.

    operator<< est diff�rent, tu ne peux pas le mettre interne de ta classe image car le premier argument est le flux et non l'image. Et si tu dois le mettre friend, c'est qu'il doit acc�der � des donn�es private ou protected. Si tu peux t'en passer, c'est mieux.

    Un op�rateur interne est un op�rateur d�clar� dans ta classe.

  5. #5
    Membre confirm�
    Inscrit en
    Juin 2006
    Messages
    98
    D�tails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 98
    Par d�faut
    Pour l'op�rateur <<, si j'enl�ve le mot 'friend' dans le .hh ou si j'enl�ve la signature de la m�thode dans le .hh, �a ne compile plus. J'ai laiss� la m�me chose qu'avant dans le .cc. Je dois changer quoi d'autres?

  6. #6
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    ...
    Le mot-cl� friend indique que tu autorise la fonction operator<< � acc�der aux sections protected et private de ta classe. Cette solution est � �viter le plus souvent possible, mais si tu ne peux pas, tant pis.

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

Discussions similaires

  1. [operator] Red�finition d'un Cast
    Par Ticoche dans le forum Windows Forms
    R�ponses: 15
    Dernier message: 23/01/2008, 17h10
  2. [MFC] red�finition de BEGIN_MESSAGE_MAP
    Par SethPech dans le forum C++Builder
    R�ponses: 2
    Dernier message: 10/03/2004, 13h59
  3. [JSP] thread ? Message d'avancement des operations en cours
    Par buffyann dans le forum Servlets/JSP
    R�ponses: 14
    Dernier message: 18/12/2003, 11h39
  4. operation sur des alias
    Par 74160 dans le forum Requ�tes
    R�ponses: 4
    Dernier message: 24/11/2003, 18h19
  5. R�ponses: 8
    Dernier message: 21/11/2003, 18h38

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