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 :

[Debutant] Classe et Methode en C++


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut [Debutant] Classe et Methode en C++
    Bonjour à tous;
    Je suis débutant en C++; J'aimerais écrire des données dans une structure.
    Je crée une classe ou je declare les methodes et ensuite dans le fichier .cpp je definis les methodes et ensuite je fiat le main. A la compilation, j'ai des erreurs du type "undeclared identifier Initialisation() et 'FicheEtudiant' : illegal use of this type as an expression". Alors je demande de l'aide.

    voici mon code:
    promo.h
    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
     
    #include <vector>
    #include<string>
    #if !defined(AFX_PROMO_H__3CA39CD0_922D_44FF_A079_17CEB4123B63__INCLUDED_)
    #define AFX_PROMO_H__3CA39CD0_922D_44FF_A079_17CEB4123B63__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    class Promo  
    {
    private:
    	int Nbe;
    	int Nbc;
    public:	
    	void Initialisation ();	
    	//vector<char> Etudiant();
    };
     
    #endif // !defined(AFX_PROMO_H__3CA39CD0_922D_44FF_A079_17CEB4123B63__INCLUDED_)
     
    struct FicheEtudiant {	
    	char Nom[21], Prenom[21];
    	int Numero;
    };
     
    promo.cpp
    #include "Promo.h"
    #include <vector>
    #include <iostream>
    using namespace std;
     
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
     
    void Promo::Initialisation()
    {	cout << "Nombre d'etudiants :"<< endl;
    	cin >> Nbe;
    	for (int i =0; i< Nbe ; i++) 
    	{
    		cout <<"Entrer un nom :";
    		cin >>FicheEtudiant.Nom;
    		cout<<"Prenom :";
    		cin >>FicheEtudiant.Nom;
    		cout<<"Numero:";
    		cin<<FicheEtudiant.Numero;
    	 }
     
    }
     
    int main()
    {
     Initialisation();
    }
    Merci d'avance;

  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
    Code promo.h : 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
     
    #include <vector>
    #include<string>
    #if !defined(AFX_PROMO_H__3CA39CD0_922D_44FF_A079_17CEB4123B63__INCLUDED_)
    #define AFX_PROMO_H__3CA39CD0_922D_44FF_A079_17CEB4123B63__INCLUDED_
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
     
    class Promo  
    {
    private:
    	int Nbe;
    	int Nbc;
    public:	
    	void Initialisation ();	
    	//vector<char> Etudiant();
    };
     
    #endif // !defined(AFX_PROMO_H__3CA39CD0_922D_44FF_A079_17CEB4123B63__INCLUDED_)
     
    struct FicheEtudiant {	
    	char Nom[21], Prenom[21];
    	int Numero;
    };

    Code promo.cpp : 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
     
    #include "Promo.h"
    #include <vector>
    #include <iostream>
    using namespace std;
     
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
     
    void Promo::Initialisation()
    {	cout << "Nombre d'etudiants :"<< endl;
    	cin >> Nbe;
    	for (int i =0; i< Nbe ; i++) 
    	{
    		cout <<"Entrer un nom :";
    		cin >>FicheEtudiant.Nom;
    		cout<<"Prenom :";
    		cin >>FicheEtudiant.Nom;
    		cout<<"Numero:";
    		cin<<FicheEtudiant.Numero;
    	 }
     
    }

    Code main.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main()
    {
     Initialisation();
    }

    Salut, tu utilises la fonction Initialisation(), mais pour ça faut déjà déclarer une classe Promo:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int main()
    {
        Promo mapromo;
        mapromo.Initialisation();
     
        return 0;
    }

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut
    Merci;
    Si supprime la définition de la structure, je n'ai plus de problème à la compilation.
    Par contre si je laisse la structure, j'ai toujours l'erreur "'FicheEtudiant' : illegal use of this type as an expression". Est ce la définition de la structure qui est incorrect?

  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
    Salut,

    C'est le même problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	for (int i =0; i< Nbe ; i++) 
    	{
    		cout <<"Entrer un nom :";
    		cin >>FicheEtudiant.Nom;
    		cout<<"Prenom :";
    		cin >>FicheEtudiant.Nom;
    		cout<<"Numero:";
    		cin<<FicheEtudiant.Numero;
    	 }
    Ca devrait être:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	for (int i =0; i< Nbe ; i++) 
    	{
                    FicheEtudiant fiche;
    		cout <<"Entrer un nom :";
    		cin >>fiche.Nom;
    		cout<<"Prenom :";
    		cin >>ficheEtudiant.Prenom;
    		cout<<"Numero:";
    		cin>>fiche.Numero;
    	 }
    D'ailleurs, si je suis la logique, ca devrait carrément faire:

    Code promo.h : 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
     
    struct FicheEtudiant {	
    	char Nom[21], Prenom[21];
    	int Numero;
    };
     
    class Promo  
    {
    private:
    	int Nbe;
    	int Nbc;
            FicheEtudiant fiche;
    public:	
    	void Initialisation ();	
    	//vector<char> Etudiant();
    };
     
    #endif // !defined(AFX_PROMO_H__3CA39CD0_922D_44FF_A079_17CEB4123B63__INCLUDED_)

    Code promo.cpp : 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
    #include "Promo.h"
    #include <vector>
    #include <iostream>
    using namespace std;
     
    //////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
     
    void Promo::Initialisation()
    {	cout << "Nombre d'etudiants :"<< endl;
    	cin >> Nbe;
    	for (int i =0; i< Nbe ; i++) 
    	{
    		cout <<"Entrer un nom :";
    		cin >>fiche.Nom;
    		cout<<"Prenom :";
    		cin >>ficheEtudiant.Prenom;
    		cout<<"Numero:";
    		cin>>fiche.Numero;
    	 }
     
    }

    Tu as besoin d'une instance de la classe FicheEtudiant pour pouvoir travailler dessus.

  5. #5
    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
    Il utilise une boucle.
    Ca sous entend un tableau de fiches étudiantes.
    "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)

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Par défaut
    Merci beaucoup;
    Je voulais effectivement recuperer les différents noms et numeros dans un tableau. Mais ça va déjà.

    Bonne soirée;

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/10/2009, 09h31
  2. [debutant]class TCustomEdit et les fonctions Copier/Coller
    Par Revan777 dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/01/2006, 19h29
  3. [debutant]Utiliser friend method
    Par Battosaiii dans le forum Débuter
    Réponses: 4
    Dernier message: 06/11/2005, 11h23
  4. [debutant]appeler une methode d'un autre document
    Par la7su dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2005, 10h22
  5. [DEBUTANT][Struts]Pb method ActionForward
    Par Celina dans le forum Struts 1
    Réponses: 8
    Dernier message: 21/09/2004, 11h14

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