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 :

Les fonctions membres


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 30
    Par défaut Les fonctions membres
    BONJOUR ?
    j'ai un probleme sur ce programme je veux afficher le nom et
    le prenom et l'age d'une personne ; Mais il ne tourne pas !
    Ou est l'erreur ?

    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
    33
    34
    35
    36
    #include<iostream.h>
    #include<string.h>
    #include<conio.h>
    class personne
    {
       char Nom[20];
       char Prenom[20];
       int age;
     
    public: 
       void initiale(char N, char P, int A);
       void presentoi();
    };
     
    void personne::initiale(char N, char P, char A)
    {
       strcpy(nom,N);
       strcpy(prenom,P);
       age=A;
    }
     
    void personne::presentoi()
    {
       cout<<"Je suis"<<nom<<prenom<<"j'ai "<<age<<"ans";
    }
     
    void main()
    {
       personne D;
       char *n,*pn,*a;
       cout<<"Entrez votre nom et votre prenom votre age";
       cin>>n>>pn>>a;
     
       D.initiale(n,pn,a);
       D.presentoi();
    }
    Ce programme ne tourne pas aidez moi, je suis debutant !



    balises [code] rajoutées par r0d. Merci d'y penser dorénavant.

  2. #2
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    utilise les balises [code] et [/code] pour entourer ton code, il sera plus lisible

  3. #3
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut

    Quels sont les erreurs ?

  4. #4
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    ton problème est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void personne::initiale(char N, char P, char A)
    char ne contient qu'un caractère.

    il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void personne::initiale(char *N, char *P, int A)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 266
    Par défaut
    ça manque de constructeur et de destructeur...
    et la fonction initiale n'a pas l'air de passer les bon paramètres : tu passes des char pour remplir des char[]

  6. #6
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    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
    33
    34
    35
    36
    #include<iostream.h>
    #include<string.h>
    #include<conio.h>
    class personne
    {
      char Nom[20];
      char Prenom[20];
       int age;
     public: 
           void initiale(char* N, char* P, int A);
            void presentoi();
     };
     
     void personne::initiale(char* N, char* P, int A)
       {
          strcpy(nom,N);
          strcpy(prenom,P);
          age=A;
       }
      void personne::presentoi()
       {
          cout<<"Je suis"<<nom<<prenom<<"j'ai" <<age<<"ans\n";
       }
     
       int main()
        {
          personne D;
          char *n,*pn;
          int a;
          cout<<"Entrez votre nom et votre prenom votre age\n";
          cin>>n>>pn>>a;
     
          D.initiale(n,pn,a);
          D.presentoi();
          return 0;
       }

  7. #7
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 302
    Billets dans le blog
    2
    Par défaut
    Utilises des string à la place des char*, et tu n'auras plus tous ces problèmes.

  8. #8
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    utilises-tu un vieux bouquin ^^? maintenant il existe les strings, et <iostream> au lieu de <iostream.h> (mais avec des nouvelles conventions).

  9. #9
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    1 . Main est de type int.
    2 . prévois un destructeur et un constructeur.
    3 . idéalement aussi un constructeur de recopie.
    4 .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cout<<"Je suis"<<nom<<prenom<<"j'ai" <<age<<"ans";
    il manque une guillemet.
    5 . même si ça affichait bien quelque chose, ça ressemblerai à ça :
    Je suismystèremartinj'ai8ans.
    6 . voir le message de coyotte507

  10. #10
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    De plus, pour cout et cin, deux choix :
    - utiliser l'opérateur de résolution de portée :: en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    std::cout
    std::cin
    - utiliser l'espace de nom standard avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    using namespace std;

  11. #11
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    ben non il a mis <iostream.h> et pas <iostream>...

  12. #12
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 30
    Par défaut Mon Programme Tourne
    Bonjour,
    Je suis très hereux car mon programme tourne !
    Je vous remercie tous de vos interventions !

  13. #13
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 302
    Billets dans le blog
    2
    Par défaut
    ?

  14. #14
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Citation Envoyé par coyotte507
    ben non il a mis <iostream.h> et pas <iostream>...
    Exact, j'avais oublié que certains environnements fonctionnés encore comme ça

  15. #15
    S2S
    S2S est déconnecté
    Membre chevronné Avatar de S2S
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2006
    Messages : 336
    Par défaut
    lu,
    j'y etait confronter hiers (c'est tout frais) sous codebloc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SOIT
    #include <iostream.h>
    ...
    std::cout << "hello";
    ...
     
    SOIT
    #include <iostream>
    using namespace std;
    ...
    cout << "hello";
    il etait tard mais il me semble que les autre "configuration" ne fonctionne pas ou mal (pas de compilation ou avec erreur)

  16. #16
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Ah bon ?
    Moi sous code::Blocks :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include <iostream>
     
    int main()
    {
     std::cout << "Hello Word\n";
    }
    /* OU */
    #include <iostream>
    using namespace std;
    int main()
    {
     cout << "Hello Word\n";
    }
    Mais iostream.h, il connait pas...
    Tout façon, pour les fichiers .h, genre stdlib.h, il me semble que maintenant c'est cstdlib, non ?

  17. #17
    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
    j'y etait confronter hiers (c'est tout frais)
    Pas si frais que ça
    Un peu de bonne lecture :
    http://c.developpez.com/faq/cpp/?pag...le#SL_iostream

  18. #18
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Shugo78
    Tout façon, pour les fichiers .h, genre stdlib.h, il me semble que maintenant c'est cstdlib, non ?
    Les entetes herites du C sont disponibles sous deux formes: xxx.h et cxxx. La difference entre les deux c'est que la forme cxxx definis les identificateurs uniquement dans le namespace std (sauf pour les macros naturellement) tandis que la forme xxx.h les importe aussi dans le namespace global.

    Ca, c'est la theorie. Elle est difficile a implementer quand on ne fournit pas la bibliotheque standard au complet mais simplement ce qui est ajoute pour le C++ (ce qui est le cas par exemple de g++). Donc en pratique en utilisant la forme xxx.h on a une meilleure portabilite.

  19. #19
    S2S
    S2S est déconnecté
    Membre chevronné Avatar de S2S
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2006
    Messages : 336
    Par défaut
    J'avais prevenu, il etait tard

    Laurent Gomila:
    c'est tout frais...dans mon espri (et pas: "c'est nouveau ca vien de sortir")

    enfin, toujours est il que j'avait retourner ca dans tous les sens commencer comme ca: et il ne trouvai pas les fonction appeler
    j'ai juste ajouté .h et ca a marcher mais avec des avertissement.... ca me plaisai pas (meme si cela fonctionnait)

    j'ai mi les deux methode qui fonctionne (pour moi sur mon poste :/) sans erreur ni avertissement.

    Jean-Marc.Bourguet: tres claire, pertinence +1

    question pour les puristes:
    En C++ <xxx.h> ou <xxxx> ???

  20. #20
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Pour les xxx.h ou xxxx, ça dépend visiblement de l'environement et de la date, si c'est récent ou non .

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. précisions sur les fonctions membres const
    Par deubelte dans le forum Débuter
    Réponses: 3
    Dernier message: 07/03/2012, 00h08
  2. Savoir utiliser les fonctions membres de class
    Par virtuadrack dans le forum C++
    Réponses: 12
    Dernier message: 02/02/2009, 13h17
  3. doc sur les fonctions
    Par masterfab dans le forum C
    Réponses: 18
    Dernier message: 23/06/2005, 17h55
  4. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  5. Réponses: 7
    Dernier message: 24/05/2003, 15h56

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