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 :

Probleme Serieux Sur Les Constructeurs


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Probleme Serieux Sur Les Constructeurs
    Bonjour,
    On nous demande d'écrire un programme qui
    va afficher le nom et la matricule d'un eleve
    en utilisant les constructeurs (statique et dynamique)
    Et j(ai fait le code ci-dessous, Mais il ne tourne pas !
    ou est l'erreur ? aidez moi, je suis debutant ! Je vs
    remerci ! J'aime les comentaires !
    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
    37
    38
    39
    40
    41
    42
    #include<iostream.h>
    #include<conio.h>
    #include<string.h>
    class eleve
    {
    int matr;
    char nom[28];
    public:
         void eleve(void);
         void eleve(int,char);
         void presentation(int,char);
         void changestatuit(int, char);
     };
     void eleve::eleve()
     {
      matr=0021;
      nom=Abderemane;
      }
      void eleve::eleve(int mat,char n)
      {
       strcpy(nom,n);
       mtr=mat;
       }
       void eleve::presentation(int,char)
       {
        cout<<"Je suis"<<nom<<"numero"<<matr;
        }
        void main()
        {
         eleve etud1, etud2;
         int a;
         char *nE;
         etud1.eleve();
         etud1.presentation();
         cout<<"Entrez votre Nom";
         cin>>nE;
         cout<<"Entrez votre matricule";
         cin>>a;
         etud2.eleve(a,nE);
         etud2.presentation(a,nE);
         getch();
         }
    // AIDEZ MOI MES AMIS? JE FAIS TOUT MON MIEUX !

  2. #2
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char *nE;
    [...]
    cin>>nE;
    Tu n'as alloué aucun espace mémoire pour ta chaîne nE. Utilise plutôt std::string (voir FAQ).

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    #include <iostream>
    #include <string>
     
    class Eleve
    {
    private:
     
         int matr_;
         std::string nom_;
     
    public:
     
         Eleve();
         Eleve( int matr, const std::string & nom );
     
         void presentation() const;
         void changestatut(int, const std::string&);
    };
     
    Eleve::Eleve()
    : matr_( 21 ),
      nom_( "Abderamane" )
    {
    }
     
    Eleve::Eleve(int matr, const std::string & nom)
    : matr_( matr ),
      nom_( nom )
    {
    }
     
    void Eleve::presentation() const
    {
        std::cout<<"Je suis "<< this->nom_<<" numero "<<this->matr_ << "\n";
    }
     
    int main()
    {
         Eleve etud1;
         etud1.presentation();
     
         int matricule = 0;
         std::string nomEleve;
     
         std::cout << "Entrez votre Nom";
         std::cin >> nomEleve;
         std::cout << "Entrez votre matricule";
         std::cin >> matricule;
     
         Eleve etud2( matricule, nomEleve);
         etud2.presentation();
     
         /* On rajoute de la construction dynamique pour la route
          */
     
         Eleve * etud3 = new Eleve( 42, "Eleve Dynamique" );
         etud3->presentation();
         delete etud3;
     
         return 0;
    }
    Soit ton prof aime le C++ et tu deviens son chouchou, soit il y connait que dalle et tu as 2/20.

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    int main() et pas void main().

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    Citation Envoyé par loufoque
    int main() et pas void main().
    ah oui, tout à fait.

  6. #6
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par nikko34
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    #include <iostream>
    #include <string>
     
    class Eleve
    {
    private:
     
         int matr_;
         std::string nom_;
     
    public:
     
         Eleve();
         Eleve( int matr, const std::string & nom );
     
         void presentation() const;
         void changestatut(int, const std::string&);
    };
     
    Eleve::Eleve()
    : matr_( 21 ),
      nom_( "Abderamane" )
    {
    }
     
    Eleve::Eleve(int matr, const std::string & nom)
    : matr_( matr ),
      nom_( nom )
    {
    }
     
    void Eleve::presentation() const
    {
        std::cout<<"Je suis "<< this->nom_<<" numero "<<this->matr_ << "\n";
    }
     
    int main()
    {
         Eleve etud1;
         etud1.presentation();
     
         int matricule = 0;
         std::string nomEleve;
     
         std::cout << "Entrez votre Nom";
         std::cin >> nomEleve;
         std::cout << "Entrez votre matricule";
         std::cin >> matricule;
     
         Eleve etud2( matricule, nomEleve);
         etud2.presentation();
     
         /* On rajoute de la construction dynamique pour la route
          */
     
         Eleve * etud3 = new Eleve( 42, "Eleve Dynamique" );
         etud3->presentation();
         delete etud3;
     
         return 0;
    }
    Soit ton prof aime le C++ et tu deviens son chouchou, soit il y connait que dalle et tu as 2/20.

    Je penche pour le 2/20...
    La classe string et les profs, ça fait au moins deux!

  7. #7
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    ca dépend des profs hein

  8. #8
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Citation Envoyé par poukill
    Je penche pour le 2/20...
    La classe string et les profs, ça fait au moins deux!
    Dans les cours que je donne, un élève qui utilise char* au lieu de std::string sans bonne raison se trouve pénalisé.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  9. #9
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Plus je lit de messages avec des exemples issus de cours, plus je me dit qu'en effet les profs semblent pas être tip top (j'espère que c'est pas le cas pour tous )

  10. #10
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Oui, enfin dans la plupart des cas, je dirai que le cours du prof est sur le langage C, et l'université (ou école) utilise un compilateur C++.
    Sauf qu'il n'y a pas d'explication sur la différence entre ces deux langages. Les étudiants viennent poster dans la rubrique C++, alors que leur code est en C.

    Après, pour apprendre le langage C++, je ne sais pas si la STL, Boost, etc... doivent faire parti de l'apprentissage. C'est quand même bien de montrer aux étudiants ce qu'est un char* aussi.

  11. #11
    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 poukill
    Après, pour apprendre le langage C++, je ne sais pas si la STL, Boost, etc... doivent faire parti de l'apprentissage. C'est quand même bien de montrer aux étudiants ce qu'est un char* aussi.
    A un étudiant informaticien certes. Mais il n'est pas obligé de voir ça dès le second chapitre.
    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...

  12. #12
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,
    Citation Envoyé par poukill
    Après, pour apprendre le langage C++, je ne sais pas si la STL, Boost, etc... doivent faire parti de l'apprentissage. C'est quand même bien de montrer aux étudiants ce qu'est un char* aussi.
    D'apres moi, il faut montrer ce qu'est un char* dans un cours de C et ce qu'est une std::string dans un cours de C++... Et de montrer que, si on dois avoir recours à un char* (parce que la bibliotheque ou la classe utilisée ne connait pas std::string) il y a parfaitement moyen d'en récupérer un

    Combient y a-t-il meme encore de gens qui utilisent printf au lieu de cout, scanf au lieu de cin etc :quesiton: (j'ai vu quelque codes de ce jus sur ce forum dernièrement)

    Par pitié, messieurs les professeurs, si vous devez apprendre le C++ à vos éleves, ne leur apprenez pas le C
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  13. #13
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Par pitié, messieurs les professeurs, si vous devez apprendre le C++ à vos éleves, ne leur apprenez pas le C
    Ou pire !
    Un mix immonde des deux (malloc/free avec cout/cin [déja vue dans un code] ...)
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  14. #14
    Rédacteur
    Avatar de Bakura
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 386
    Par défaut
    Ou rien que le simple #include <iostream> au lieu de #include <iostream.h>. Je l'ai vu des dizaines de fois ici, et pourtant moi j'ai appris avec des bouquins qui ont deux-trois ans et j'ai toujours vu iostream.

  15. #15
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    C'est vrai que c'est un gros problème.
    Je n'ai pas encore entamé mes études d'info(classes prépas pour le moment), mais depuis un moment je redoute d'avoir un tel prof.

    Visiblement, soit ils n'aiment pas ce qu'ils enseignent au point de pas se maintenir informé de l'évolution du langage et de ses normes, soit ce sont simplement de mauvais profs.
    Mais bon, à part ça, ...

Discussions similaires

  1. Question sur les constructeurs
    Par TocTocKiéLà? dans le forum C++
    Réponses: 2
    Dernier message: 27/06/2007, 17h52
  2. probleme action sur les JComboBox
    Par L4BiN dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 21/12/2006, 16h03
  3. Probleme coherence sur les reponses.
    Par magnus2005 dans le forum Hibernate
    Réponses: 7
    Dernier message: 18/07/2006, 17h33
  4. [POO]Question sur les constructeurs
    Par Burinho dans le forum Langage
    Réponses: 16
    Dernier message: 08/04/2006, 21h56
  5. gérer les exceptions sur les constructeurs?
    Par LESOLEIL dans le forum Général Java
    Réponses: 9
    Dernier message: 15/03/2006, 10h46

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