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 :

fonction retourant un pointeur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 29
    Par défaut fonction retourant un pointeur
    Bonjour,

    Est-ce possible de faire une fonction retournant un pointeur sur un objet ?

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    *Objet getMin(Objet *noeud, string el);
    Le but étant de pouvoir accueillir cette fonction directement par un pointeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Objet *courant = getMin(n,el);
    Par exemple, si le pointeur courant pointe sur un noeud, la fonction getMin retournerait directement un pointeur sur un noeud, qui serait le min.

    Est-ce que ceci est possible, ou est-ce qu'il y a moyen de faire mieux ?

    merci !

  2. #2
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    T* foo();


    Mais bon, faut savoir ce qu'on fait. Si l'objet a été dynamiquement alloué c'est à l'appelant de garantir sa destruction?

    Tu peux utiliser une référence (constante) aussi.

  3. #3
    Membre averti
    Inscrit en
    Avril 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 45
    Par défaut
    En référence à mon post:
    http://www.developpez.net/forums/d83...onst-fonction/

    est il possible d'en faire carrément une lvalue comme avec des références?

    genre

  4. #4
    Membre chevronné Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Par défaut
    [SUPPRESSION]

    [EDIT]
    Erf, le précedent post n'est pas l'auteur... Je me douter qu'il y avais un truc bizarre >< !
    [/EDIT]

    Oui...

    => une référence n'est pas un truc magique. C'est un pointeur figé à sa création... Tout ce qu'on peut faire avec une ref, on peut le faire avec un pointeur (sauf la surcharge d'opérateur).

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 29
    Par défaut
    'jour,

    Ce n'est pas de mon crue cette fonction qui va vers un pointeur...
    Par contre, si je fais comme ça, est-ce que ça fait plus de sens ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Objet *courant = &getMin(n,el);
    En ajoutant une référence, le pointeur pointera vers la référence du résultat de la fonction.
    Du moins, je n'ai plus d'erreur d'initialisation!

    merci pour votre avis

  6. #6
    Membre chevronné Avatar de Lavock
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 560
    Par défaut
    Je savais que j'étais pas reveillé...

    Bon, l'opérateur "&", c'est pour récupérer l'adresse d'une rvalue... Donc ce que tu met n'as aucun sens...

    Sous reserve que ta fonction retourne effectivement une ravlue (pointeur ou référence), tu peux "récupérer" cette objet par adresse (comprendre ref. ou pointeur). Si tu a mis des otpions de compilation style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -pedantic -std=c++03 -wAll
    et que rien de rale, c'est que ta fonction renvoie une référence.

    Sinon, si tu es sur qu'elle renvoie un pointeur, met les options équivalente. Si ça marche toujours, jette ton compilateur....

Discussions similaires

  1. Retour de fonction pour allocation pointeur
    Par Tenshock dans le forum C
    Réponses: 8
    Dernier message: 26/12/2014, 21h44
  2. Réponses: 11
    Dernier message: 07/01/2008, 19h47
  3. retour de pointeur par une fonction
    Par Miko95 dans le forum C++
    Réponses: 17
    Dernier message: 12/12/2007, 01h33
  4. Fonction retournant un pointeur
    Par Le Furet dans le forum C
    Réponses: 8
    Dernier message: 25/09/2005, 18h54
  5. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37

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