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 :

valeur par defaut d'un parametre d'une methode


Sujet :

C++

  1. #1
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut valeur par defaut d'un parametre d'une methode
    salut a tous,

    j'aimerai savoir s'il est possible d'affecter comme valeur par defaut à un parametre d'une methode d'une classe, un attribut de cette meme classe.
    ...je suis pas sur d'etre clair

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    class maclasse {
    public:
    void mamethode (string = "");
    private:
    string mavar;
    };
    Ma question est : est-il possible de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void mamethode (string = "");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void mamethode (string = mavar);
    ou bien dois-je laisser "" et mettre le code adequate (si parametre = "" alors utiliser mavar ) dans le corps de ma methode ?
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  2. #2
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    essaye

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Par défaut
    ca serai simple d'utiliser mavar directement dans la fonction sans lui mettre comme parametre cadire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class maclasse { 
    public: 
    void mamethode ()
    {
    //j'utilise ici mavar sans la declarer
    } 
    private: 
    string mavar; 
    };

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 97
    Par défaut Re: valeur par defaut d'un parametre d'une methode
    Citation Envoyé par le y@m's
    salut a tous,
    ...je suis pas sur d'etre clair : ?
    c'est le seul point qui est clair lol
    je vois pas l'intérêt de faire ce que tu veux faire

  5. #5
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par jmv
    essaye
    c'est ce que j'ai fait mais un coup ça compile, un coup ça compile pas en disant
    invalid use of non-static data member 'maclass::mavar'
    (j'utilise devcpp).
    de par ce comportement j'aurais tendance a dire que ce n'est pas faisable mais je demande confirmation (ou bien si c'est faisable d'une autre façon).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    le but est d'avoir une fonction qui prend un parametre non obligatoire, et dans le cas où il n'est pas renseigné, j'utilise la valeur stockée dans mavar.

    en gros, je veut une valeur par defaut qui ne soit pas toujours la meme (en fonction de l'execution du programme)
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    comme je ne connaissais pas la réponse, j'ai aussi essayé et appararement ça ne marche qu'avec les membres static (dev-C++ aussi)

    tu peux utiliser la surchare
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class maclasse { 
    public: 
        void mamethode (string arg); // utilise arg 
        void mamethode ()  // utilise mavar
        {
            mamethode(mavar);
        }
    private: 
        string mavar; 
    };

  8. #8
    Membre confirmé Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Par défaut
    pourquoi tu ne fais pas plutot ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void mamethode (string arg = mavar);
    [/code]

  9. #9
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    Citation Envoyé par hamster
    pourquoi tu ne fais pas plutot ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void mamethode (string arg = mavar);
    [/code]
    c'est justement la question de y@m's et apparament ça n'est pas faisable

  10. #10
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Citation Envoyé par hamster
    pourquoi tu ne fais pas plutot ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void mamethode (string arg = mavar);
    Citation Envoyé par le y@m's cad moi
    c'est ce que j'ai fait mais un coup ça compile, un coup ça compile pas en disant
    invalid use of non-static data member 'maclass::mavar'

    Citation Envoyé par jmv
    tu peux utiliser la surchare
    c'est aussi une solution mais dans ce cas autant tester le parametre et si ="" alors utiliser mavar.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  11. #11
    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
    Effectivement ce n'est pas possible d'avoir une donnée membre non statique, étant donné que les paramètres par défaut sont résolus à la compilation. La meilleure solution je pense est d'utiliser la surcharge de fonction. Tu peux aussi passer une chaîne vide par défaut, et faire un test dans ta fonction, mais c'est moins propre.

  12. #12
    Membre confirmé Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Par défaut
    j'ai essayé ça et ça marche nickel :

    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
    #include <iostream>
    #include <string>
     
    std::string MonSlip = "DIM";
     
    void fonction (std::string S = MonSlip)
    {
    	std::cout << S << std::endl;
    }
     
    int main()
    {
    	std::string Culotte = "Culotte_en_dentelle";
     
    	fonction(Culotte);
    	fonction();
     
    	return 0;
    }
    c'est pas ce que vous essayiez de faire ??

  13. #13
    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
    Non, il voulait utiliser une donnée membre comme paramètre par défaut, pas une variable globale.

  14. #14
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    Citation Envoyé par hamster
    c'est pas ce que vous essayiez de faire ??
    oui sauf que y@m's veut faire ça avec un membre non-static de classe, et la ça coince

    toi tu l'a fait avec une variable globabes, un membre static peut être considéré comme une variable globale accessible uniquement de la classe.
    [edit] arf loulou24 m'a devancé [/edit]

  15. #15
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    a tous

    Citation Envoyé par Loulou24
    La meilleure solution je pense est d'utiliser la surcharge de fonction. Tu peux aussi passer une chaîne vide par défaut, et faire un test dans ta fonction, mais c'est moins propre.
    si la surcharge est la solution la plus propre, qu'en est-il de la solution la plus performante ? (je sais je chippote)
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  16. #16
    Membre confirmé Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Par défaut
    mea culpa !

    mais en tout cas c'est bon à savoir !

  17. #17
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Citation Envoyé par le y@m's
    Si la surcharge est la solution la plus propre, qu'en est-il de la solution la plus performante ? (je sais je chippote)
    Avec la surcharge, pas besoin de faire de test dans la fonction.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. Valeur par defaut d'une liste deroulante
    Par jpdar dans le forum IHM
    Réponses: 20
    Dernier message: 10/06/2016, 16h02
  2. Réponses: 0
    Dernier message: 02/04/2013, 11h23
  3. valeur par defaut d'un champ dans une table
    Par jjacques68 dans le forum Access
    Réponses: 3
    Dernier message: 24/10/2012, 09h59
  4. valeur par defaut d'un parametre de type date
    Par h_a_m_a_d_a dans le forum BIRT
    Réponses: 8
    Dernier message: 23/02/2007, 11h43
  5. donner une valeur par defaut à un champ file
    Par Davboc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/02/2006, 11h26

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