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 :

Retourner un long&


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut Retourner un long&
    Bonjour,

    J'ai recuperer une classe dont voici un apercu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class CTest
    {
    public:
        long m_Nb;
        inline long& getNb(void) {return m_Nb;}
    }
    Je ne comprend pas a quoi ca sert de retourner le long&.
    Si qu'elqu'un sait...

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    PS: ca marche nickel, a la compilation et a l'execution, c'est juste que je vois pas l'interet.

  3. #3
    Membre chevronné Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Par défaut
    Tu peux modifier ton attribut m_Nb alors que si tu renvoyais long tout court, tu ne pourrais pas... C'est pas forcément mieux, le comportement est différent...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    Ben comment?

    J'essaye ca mais ca change pas la valeur de ma variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    class test
    {
    public:
    	long n;
    	test() {
    		n = 3;
    	}
     
    	inline long& getTest(void) {return n;}
     
    	void putTest(long m) {
    		n = m;
    	}
    };
     
    int main(int argc, char* argv[])
    {
    	test* essai = new test();
    	long a;
     
    	printf("Test = %d\n", essai->getTest());
    	essai->putTest(5);
    	printf("Test = %d\n", essai->getTest());
    	a = essai->getTest();
    	printf("Test = %d\n", a);
    	a = 2;
    	printf("Test = %d\n", essai->getTest());
     
    	return 0;
    }

  5. #5
    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
    a est un long, pas une référence, si tu veux modifier n, il faut le faire avant de transformer la référence en long !
    Ensuite, si tu a un getTest comme ça, tu devrais aussi avoir le même qui ne retourne pas de référence en version constante.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    wow puissant!!!
    Donc je suppose que l'interet c'est de faire d'une pierre 2 coups: un put/get en quelque sorte!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    long getNb()
    putNb(long)
     
    devient
     
    long& Nb()
    Ok, merci a vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Arrêter un prog si temps de connexion trop long
    Par jakouz dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2002, 18h28
  2. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34
  3. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 20h22
  4. [Manip de fichiers] Fonction retournant des infos
    Par sans_atouts dans le forum C
    Réponses: 3
    Dernier message: 24/07/2002, 14h16
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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