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 avec les class


Sujet :

C++

Vue hybride

naifanshi probleme avec les class 23/05/2008, 14h16
loicounet Dans les "us", en général on... 23/05/2008, 14h34
naifanshi ben pour le famille.h j'ai... 23/05/2008, 14h57
loicounet Bien déjà ptite info==> il y... 23/05/2008, 15h05
naifanshi le "famille crt(string nom)"... 23/05/2008, 15h22
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut probleme avec les class
    bonjour à tous,

    je ne connais pas les us et coutumes du coin donc si je gaffe, veuillez m'en pardonner.

    voilà en gros mon probleme:

    je suis en train de creer(en fait, j'ai finit sauf que ça marche pas ) un programme qui sert à creer un annuaire.

    en gros, j'ai trois structure inmbriquée, une class carnet(l'annuaire), qui contient des éléments de la class famille et chaque famille contient des element de la class personne.

    le carnet est une liste doublement chainée de familles, la famille est une liste doublement chainée de personnes.

    bon jusqu'ici tout vas bien.

    le probleme c'est que quand je compile, j'ai le signal qui s'arrete sur le constructeur de la famille carnet et j'ai le message suivant:

    c:\documents and settings\wipf\mes documents\visual studio 2008\projects\carnet_famille_3\carnet_famille_3\famille3.cpp(9) : error C2653: 'carnet' : n'est pas un nom de classe ni d'espace de noms

    je n'ai aucune idée de l'origine du probleme, la class carnet m'a l'air bien definie, la fonction aussi...si quelqu'un a une idée...je suis preneur.

    autre question plus simple, quels include doit on utiliser et où doit-on les utiliser pour assurer le lien entre le cpp, le .h et le main?
    j'ai essayé pense que ce que j'ai fait colle mais...pas sur

    d'avance merci à tous ceux qui etudierons mon cas

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Par défaut
    Dans les "us", en général on poste des bout de code d'où on pense que vient le problème.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut
    ben pour le famille.h j'ai ceci(désolé pour longueur mais...comme j'ai créé toutes les classes...):
    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
    63
    64
    65
     
    #ifndef FAMILLE_H
    #define FAMILLE_H
    #include <iostream>
    #include<string>
    #include "famille.cpp"
     
    class carnet{
     
        public:
            carnet();   
            bool avant(const string& nom,const string& nom2);    
            famille crt(string nom);    //    x
            void ajouter_famille(string nom, string adresse, string tel);    
            famille get_premiere_famille();    //    x
     
        private:
            famille*c_premier;
            famille*c_dernier;
     
    };
     
     
    class famille{
     
        public: 
            famille();  
            ~famille();  
            famille(string nom, string adresse, string tel);  
            void ajouter_personne(string prenom, string mail, string gsm);  
            void modifier_famille();  
            void afficher_famille();    
            personne get_premiere_personne();
     
        private:
            string f_nom;
            string f_adresse;
            string f_tel;
            personne*f_premier;
            personne*f_dernier;
            famille*f_suivant;
            famille*f_precedant;
            friend class carnet;
     
    };
     
    class personne{
     
        public:
            personne();  
            personne(string prenom, string mail, string gsm);  
            ~personne();  
            void modifier_personne();
            void afficher_personne();   
     
        private:
            string p_prenom;
            string p_mail;
            string p_gsm;
            personne*p_precedant;
            personne*p_suivant;
            friend class famille;
    };
     
    #endif
    j'ai declaré mon constructeur de la classe carnet comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    carnet::carnet(){
        c_premier=new famille();
        c_dernier=new famille();
        c_premier->f_suivant=c_dernier;
        c_dernier->f_precedant=c_premier;
    }

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Par défaut
    Bien déjà ptite info==> il y a des balises de code: le # pour encadrer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class carnet{
     
    public:
    carnet();
    bool avant(const string& nom,const string& nom2);
    famille crt(string nom); // x
    tu crée une famille avec un seul paramètre string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class famille{
     
    public:
    famille();
    ~famille();
    famille(string nom, string adresse, string tel);
    ce constructeur n'est pas défini dans la classe famille ca vient peut etre de la ton soucis.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Par défaut
    Citation Envoyé par loicounet Voir le message

    tu crée une famille avec un seul paramètre string
    le "famille crt(string nom)" en fait n'est pas un constructeur au sens propre.

    les familles sont classées en ordre alpha, donc quand j'ajoute une nouvelle famille, il faut que je sache avant quelle famille (pré-existante dans le carnet) je peux la placer.

    cette fonction a pour role de parcourir le carnet et de m'envoyer la famille avant laquelle je vais pouvoir placer ma nouvelle famille.

    par contre tu souleves un point...est-ce que je devrais le declarer en pointeur de famille plutot qu'en famille?

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

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    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 288
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    si je puis me permettre: tu fais très compliqué alors que tu pourrais faire tellement simple. Ou alors, je n'ai pas tout compris.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    struct Personne
    {
            Personne( const string & prenom = "", const string & mail = "", const string & gsm = "");  
            ~Personne();  
            void modifier_personne();
            void afficher_personne();   
     
        private:
            string p_prenom;
            string p_mail;
            string p_gsm;
    };
    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
    class Famille{ 
        public: 
            Famille(const string & nom = "", const string & adresse = "", const string = tel = "");  
            ~Famille();  
            void ajouter_personne(const string & prenom, const string & mail, const string & gsm);  
            void modifier_famille();  
            void afficher_famille();    
            Personne * get_personne( size_t position ) { return ( f_personnes.size() >= position ) ? NULL : f_personnes[position]; )
     
        private:
            string f_nom;
            string f_adresse;
            string f_tel;
            vector<Personne> f_personnes;
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Carnet{
     
        public:
            Carnet();    
            famille crt(const string & nom);
            void ajouter_famille(const string & nom, const string & adresse, const string & tel);    
            Famille * get_famille( size_t position ) { return ( c_familles.size() >= position ) ? NULL : c_familles[position]; )
     
        private:
            vector<Famille> c_familles;
    };
    Ce que je veux dire, c'est que je ne comprend pas pourquoi tu utilises tous ces pointeurs. En c++, il faut éviter les pointeur si l'on peut, et il me semble qu'ici, on peut largement s'en passer. Non?

Discussions similaires

  1. JSF/JPA probleme avec les classes embedded
    Par sorown dans le forum JSF
    Réponses: 0
    Dernier message: 02/04/2014, 13h15
  2. probleme Avec les classes Abstraites
    Par thibaultc dans le forum C++/CLI
    Réponses: 3
    Dernier message: 02/12/2013, 10h58
  3. Probleme avec les Classes
    Par archipel dans le forum Flash
    Réponses: 7
    Dernier message: 16/05/2007, 14h57
  4. Probleme avec les classes friends
    Par Kerwando dans le forum C++
    Réponses: 4
    Dernier message: 27/10/2006, 23h29
  5. [POO] Problème avec les classes
    Par peypey dans le forum Langage
    Réponses: 8
    Dernier message: 03/05/2006, 15h05

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