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 :

Chaine littérale en tant qu'argument par défaut


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Par défaut Chaine littérale en tant qu'argument par défaut
    salut

    Je voudrais savoir si c'est vraiment possible parce que j'ai l'impression que mon code ne compile pas à cause de ça. Tout les exemple que j'ai trouvé ne parlent que d'argument de type int, double ou autre à mettre par défaut, et à côté rien pour les classes et les chaines littérales. Je pense que normalement ça devrait être possible non ?

    C'est juste une hypothèse car les erreur indiqués par le compilo ne me disent pas vraiment qu'il n'en veut pas.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,

    Désolé, ma boule de cristal est en panne.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Par défaut
    On peut avoir des arguments par défaut de type string, cf. le code ci dessous :
    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
     
    #include <iostream>
    #include <string>
     
    void f(std::string const & chaine = std::string("toto"))
    {
        std::cout << chaine << std::endl;
    }
     
    int main()
    {
        f();
        f("tata");
     
        return EXIT_SUCCESS;
    }

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 5
    Par défaut
    Resolved

    Pour m'auto-répondre la réponse est : oui, on peut utiliser une chaine littérale comme argument par défaut comme n'importe quelle type ayant un constructeur par défaut.

    Mais l'erreur ne venait absolument pas de là.

    Bonjour,

    Désolé, ma boule de cristal est en panne.
    Ce qui m'intéressait c'était la réponse à ma question pas la résolution de la compilation.
    Sinon j'aurai sans aucun doute poster le code en entier et vous m'auriez gentillement dit qu'en rajoutant un ";" à la fin de la déclaration de la classe ça passerait peut être mieu...
    Mais comme en plus je l'ai trouvé tout seul, je me tappe moins la honte


    Merci quand même pour vos réponses

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

Discussions similaires

  1. template, itérateurs et argument par défaut de fonction
    Par goran kajfes dans le forum Langage
    Réponses: 5
    Dernier message: 24/05/2009, 18h00
  2. Réponses: 3
    Dernier message: 28/11/2008, 14h02
  3. Réponses: 2
    Dernier message: 12/08/2008, 19h38
  4. Argument par défaut : bug ou spécification?
    Par Sebsheep dans le forum Général Python
    Réponses: 4
    Dernier message: 19/06/2008, 16h11
  5. Réponses: 18
    Dernier message: 28/02/2008, 10h27

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