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 :

J'ai créé une classe mais elle n'est pas reconnue


Sujet :

C++

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut J'ai créé une classe mais elle n'est pas reconnue
    Salut tout le monde,

    Un petit problème "curieux".

    Je viens de créer une classe nommé CClassification.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class CClassification : public CChiens
    {
    public:
    	CClassification();
    	~CClassification();
     
    	const char*		Type() const; 				
    };
    Elle hérite donc de CChiens en public.

    Le compilo me dit :

    'CClassification' : is not a class or namespace name
    pourtant que je fais CClassification:: j'obtiens bien la liste de ces méthodes.

    pour toutes les méthodes que j'ai créés pour cette classe (constructeur, destructeur...)

    Sur la méthode Type() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const char* CClassification::Type() const
    {
    	return null;
    }
    déclaré dans le .h comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const char*		Type() const;
    j'ai :

    error C2270: 'Type' : modifiers not allowed on nonmember functions
    Est-ce que cela vous dis quelque chose ?

    Merci d'avance.

    beegees

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Salut,

    Trois questions:

    • Si CChiens est définie dans un autre fichier d'en-tête, as tu bien inclu le fichier dans lequel la classe est définie
    • Si CChiens et CClassification sont dans le même définies dans le même fichier d'en-tête:
      • la définition de CChiens apparait-elle bien avant celle de CClassification
      • sinon, as tu bien fait une déclaration anticipée de la classe CChien avant la défintion de CClassification
    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

  3. #3
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Points : 158
    Points
    158
    Par défaut
    perso je viens de faire un copier/coller de ton code et ca compile très bien chez moi...

    la différence est que mes fichiers sont CPP et HPP peut être?

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Salut,

    Trois questions:

    • Si CChiens est définie dans un autre fichier d'en-tête, as tu bien inclu le fichier dans lequel la classe est définie
    • Si CChiens et CClassification sont dans le même définies dans le même fichier d'en-tête:
      • la définition de CChiens apparait-elle bien avant celle de CClassification
      • sinon, as tu bien fait une déclaration anticipée de la classe CChien avant la défintion de CClassification
    Bonjour Koala,

    Merci pour ta réponse.

    Je répondrai "OUI" à toutes tes questions.

    Voici mon code du fichier h en question :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    #ifndef CHIENS_H
    #define CHIENS_H
     
     
    #include "generique.h"
    #include "chaine.h"
     
    class CChiens;
    class CTabClassifications;
    class CTabOrigines;
    class CTabUtilisations;
    class CClassification;
     
    //la classe CChiens va contenir tout ce qui est identique aux classifications, origines et 
    //utilisation, s'est à dire un nom et un compteur.
     
    class CChiens : public CGenerique
    {
    public:
    	CChiens();
    	CChiens(const CChiens& Source);
    	CChiens(const char* UnNom);
    	~CChiens();
     
    	bool				GereUnicite() const;
    	long				NombreClesDeTri() const;
     
    	CGenerique*			Cloner() const;
    	bool				EstValide() const;
    	int					Comparer(const CGenerique& Autre, long TypeComparaison) const;
     
    	virtual const char*	Type() const; //va juste renvoyer "Voiture" ou "Bus" ou "Camion" en dur
     
    	const char*			Nom() const;
    	short				Nombre() const;
    	virtual void		Afficher() const;
     
    	bool				Nom(const char* UnNom);
    	bool				Nombre(short UnNombre);
     
     
     
    private:
    	CChaine			m_Nom;
    	short			m_Compteur;
    };
     
    class CClassification : public CChiens
    {
    public:
    	CClassification();
    	~CClassification();
     
    	const char*		Type() const; 				
    };
     
    class CTabClassifications : public CTableauGenerique
    {
     
    public:
    	//si une classification existe, elle n'entre pas dans le tableau mais le compteur s'incrémente
    	//autrement il y'a ajout dans le tableau et incréementation du compteur
    	CTabClassifications();
    	CTabClassifications(const CTabClassifications& Source);
    	~CTabClassifications();
     
    	CChiens&			Element(long UnIndice) const;
    	long				Indice(const char* UnNom) const;
     
    	bool				Ajouter(const CChiens& Modele);
    	void				Trier();
     
    	void				Afficher(const char* FiltreSurType=NULL) const;
    	bool				Charger(const char* NomFichier);
     
    private:
    	static bool			FctnTraiterLigne(const CChargeurFichierTexte& Chargeur, void* Contexte);
    	bool				TraiterLigne(const CChargeurFichierTexte& Chargeur);
     
    };
     
     
    class CTabOrigines : public CTableauGenerique
    {
     
    public:
    	CTabOrigines();
    	CTabOrigines(const CTabOrigines& Source);
    	~CTabOrigines();
     
    public:
    	CChiens&			Element(long UnIndice) const;
    	long				Indice(const char* UnNom) const;
     
    	bool				Ajouter(const CChiens& Modele);
    	void				Trier();
     
    	void				Afficher(const char* FiltreSurType=NULL) const;
    	bool				Charger(const char* NomFichier);
     
    private:
    	static bool			FctnTraiterLigne(const CChargeurFichierTexte& Chargeur, void* Contexte);
    	bool				TraiterLigne(const CChargeurFichierTexte& Chargeur);
     
     
    };
     
    class CTabUtilisations : public CTableauGenerique
    {
     
    public:
    	CTabUtilisations();
    	CTabUtilisations(const CTabUtilisations& Source);
    	~CTabUtilisations();
     
    	CChiens&			Element(long UnIndice) const;
    	long				Indice(const char* UnNom) const;
     
    	bool				Ajouter(const CChiens& Modele);
    	void				Trier();
     
    	void				Afficher(const char* FiltreSurType=NULL) const;
    	bool				Charger(const char* NomFichier);
     
    private:
    	static bool			FctnTraiterLigne(const CChargeurFichierTexte& Chargeur, void* Contexte);
    	bool				TraiterLigne(const CChargeurFichierTexte& Chargeur);
     
     
    };
     
     
     
     
     
     
     
     
     
    #endif//CHIENS_H
    Un big merci à toi.

    beegees

  5. #5
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Points : 158
    Points
    158
    Par défaut
    évidement j'ai repris une classe à moi définie dans le même fichier à la place de CChien histoire de tester

  6. #6
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par loicounet Voir le message
    perso je viens de faire un copier/coller de ton code et ca compile très bien chez moi...

    la différence est que mes fichiers sont CPP et HPP peut être?
    Salut Loic,

    Merci pour ta réponse et pour avoir pris le temps de compiler mon code.

    Je ne sais pas ce que s'est des .hpp mais chez moi ça ne passe pas

    Merci
    beegees

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par loicounet Voir le message
    évidement j'ai repris une classe à moi définie dans le même fichier à la place de CChien histoire de tester
    D'où penses-tu que le problème provient ?

    Merci

    beegees

  8. #8
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Points : 158
    Points
    158
    Par défaut
    tu pourrais peut etre tenter de commenter tout le code dans tes classes, histoire de voir si l'arbre de l'héritage fonctionne!
    genre:

    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
     
    class CChiens : public CGenerique
    {//
    };
     
    class CClassification : public CChiens
    {//
    };
     
    class CTabClassifications : public CTableauGenerique
    {//
     };
     
     
    class CTabOrigines : public CTableauGenerique
    {//
     
    };
     
    class CTabUtilisations : public CTableauGenerique
    {//
    };

  9. #9
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Etrange effectivement...

    Peux-tu nous donner le message d'erreur complet? (ligne, etc...)
    J'opterais pour une faute de frappe ou une erreur de copier/coper entre le .cpp et le .h
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  10. #10
    Membre habitué
    Inscrit en
    Avril 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 155
    Points : 158
    Points
    158
    Par défaut
    c'est clair que ya moyen de se planter entre CClassification et CClassifications!

  11. #11
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par loicounet Voir le message
    tu pourrais peut etre tenter de commenter tout le code dans tes classes, histoire de voir si l'arbre de l'héritage fonctionne!
    genre:

    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
     
    class CChiens : public CGenerique
    {//
    };
     
    class CClassification : public CChiens
    {//
    };
     
    class CTabClassifications : public CTableauGenerique
    {//
     };
     
     
    class CTabOrigines : public CTableauGenerique
    {//
     
    };
     
    class CTabUtilisations : public CTableauGenerique
    {//
    };
    J'ai commenté le code et je vois les commentaires quand je crées un objet de type CClassification par exemple, ça veut dire que l'héritage fonctionne ?

    Citation Envoyé par r0d Voir le message
    Etrange effectivement...

    Peux-tu nous donner le message d'erreur complet? (ligne, etc...)
    J'opterais pour une faute de frappe ou une erreur de copier/coper entre le .cpp et le .h
    Faute d'orthographe, hum, ça m'est en effet déjà arrivé

    Voici chaque message d'erreur et où à quelles lignes ils arrivent :
    error C2653: 'CClassification' : is not a class or namespace name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CClassification::CClassification()
    {
    }
    error C2653: 'CClassification' : is not a class or namespace name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CClassification::~CClassification()
    {
    }
    error C2084: function 'int __cdecl CClassification(void)' already has a body
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CClassification::~CClassification()
    {
    }
    error C2653: 'CClassification' : is not a class or namespace name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const char* CClassification::Type() const
    {
    	return "Classification";
    }
    error C2270: 'Type' : modifiers not allowed on nonmember functions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const char* CClassification::Type() const
    {
    	return "Classification";
    }
    Citation Envoyé par loicounet Voir le message
    c'est clair que ya moyen de se planter entre CClassification et CClassifications!
    Et voici le code de mon cpp au cas où :

    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
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    #include <BasicConsole.h>
    #include <search.h>
    #include "chiens.h"
     
    //il faut donc encore créer les classes origines et utilisations
     
    /////////////////
    //Class CChiens//
    ////////////////
     
    CChiens::CChiens()
    {
    }
     
    CChiens::CChiens(const CChiens& Source) 
    :CGenerique(Source),m_Nom(Source.m_Nom)
    {
    }
     
    CChiens::CChiens(const char* UnNom)//OK
    {
    	Nom(UnNom);
    }
     
     
    CTabClassifications::~CTabClassifications()
    {
    }
     
    bool CChiens::Nom(const char* UnNom) //ok
    {
    	if ( (UnNom == NULL) || (strlen(UnNom) < 2) ) return false;
    	return m_Nom.Chaine(UnNom);
     
    }
     
    void CChiens::Afficher()const
    {
    	printf("- Classifications : %s\n",Nom());
    }
     
    CTabClassifications::CTabClassifications(const CTabClassifications& Source)
    :CTableauGenerique(Source)
    {
    }
     
     
    void CTabClassifications::Afficher(const char* FiltreSurType) const
    {	long ordre = 0;
    	for (long n=0; n < Nombre(); n++)
    	{
    		if ( (FiltreSurType == NULL) || (strcmp(Element(n).Type(),FiltreSurType) == 0) )
    		{
    			ordre++;
    			printf("%s n°%ld :\n",Element(n).Type(),ordre);
    			Element(n).Afficher();
    		}
    	}
     
    }
     
    const char* CChiens::Type() const
    {
    	return null;
    }
     
    int CChiens::Comparer(const CGenerique& Autre, long TypeComparaison) const
    {
    		return stricmp(Nom(),((const CChiens&)Autre).Nom());
     
    }
     
    bool CChiens::EstValide() const
    {
    	return true;
    }
     
    CGenerique* CChiens::Cloner() const
    {
    	return new CChiens(*this);
    }
     
    long CChiens::NombreClesDeTri() const
    {
    	return 1;
    }
     
    bool CChiens::GereUnicite() const
    {
    	return true;
    }
     
    CChiens::~CChiens()
    {
     
    }
     
    const char* CChiens::Nom() const
    {
    	return m_Nom.Chaine();
    }
     
     
    CChiens& CTabClassifications::Element(long UnIndice) const
    {
    	return (CChiens&)CTableauGenerique::Element(UnIndice);
    }
     
    ////////////////////////
    //Class Classification//
    ////////////////////////
     
    CClassification::CClassification()
    {
    }
     
     
    CClassification::~CClassification()
    {
    }
     
    const char* CClassification::Type() const
    {
    	return "Classification";
    }
     
     
    ///////////////////////////////
    //Class CTabClassifications////
    ///////////////////////////////
     
    CTabClassifications::CTabClassifications()
    :CTableauGenerique(CChiens("POUBELLE"))
    {
    }
     
    long CTabClassifications::Indice(const char* UnNom) const
    {
    	//ici je ne passe que le nom et pas le compteur, on travaille ici avec le constructeur spécifique
    	//de la classe CChiens ! donc je ne passe qu'un paramètre contrairement aux véhicules
    	//donc je vérifie le nom dans le tableau, si il existe déjà j'incrémente le compteur
    	//autrement je l'ajoute et j'incrémente le compteur.
     
     
    	//dans les tableaux il ne faut pas remettre les membres !!!!
    	return CTableauGenerique::Indice(CChiens(UnNom));
     
    }
     
    bool CTabClassifications::Ajouter(const CChiens& Modele)
    {
    	return CTableauGenerique::Ajouter(Modele);
    }
     
    void CTabClassifications::Trier()
    {
    	CTableauGenerique::Trier(ComparaisonPourTri);
    }
     
    bool CTabClassifications::Charger(const char* NomFichier)
    {
    	CChargeurFichierTexte	Chargeur;
     
    	return Chargeur.Charger(NomFichier,'\t',CTabClassifications::FctnTraiterLigne,this);
    }
     
    /*static*/ bool CTabClassifications::FctnTraiterLigne(const CChargeurFichierTexte& Chargeur, void* Contexte)
    {
    	return ((CTabClassifications*)Contexte)->TraiterLigne(Chargeur);
    }
     
     
    bool CTabClassifications::TraiterLigne(const CChargeurFichierTexte& Chargeur)
     
    //le chargeur ouvre le fichier, lit ligne par ligne et éclate la ligne, il n'y a donc plus rien à faire
    {
    	if (Chargeur.NombreChamps() == 4)
    	{
    		Ajouter(CChiens(Chargeur.Champs(1)));
    	}
    	return true;
    }
     
     
    /////////////////////////
    //Class CTabOrigines////
    ////////////////////////
     
    CTabOrigines::CTabOrigines()
    :CTableauGenerique(CChiens("POUBELLE"))
    {
    }
     
    CTabOrigines::~CTabOrigines()
    {
    }
    long CTabOrigines::Indice(const char* UnNom) const
    {
    	//ici je ne passe que le nom et pas le compteur, on travaille ici avec le constructeur spécifique
    	//de la classe CChiens ! donc je ne passe qu'un paramètre contrairement aux véhicules
    	//donc je vérifie le nom dans le tableau, si il existe déjà j'incrémente le compteur
    	//autrement je l'ajoute et j'incrémente le compteur.
     
     
    	//dans les tableaux il ne faut pas remettre les membres !!!!
    	return CTableauGenerique::Indice(CChiens(UnNom));
     
    }
     
     
    bool CTabOrigines::Ajouter(const CChiens& Modele)
    {
    	return CTableauGenerique::Ajouter(Modele);
    }
     
    void CTabOrigines::Trier()
    {
    	CTableauGenerique::Trier(ComparaisonPourTri);
    }
     
    bool CTabOrigines::Charger(const char* NomFichier)
    {
    	CChargeurFichierTexte	Chargeur;
     
    	return Chargeur.Charger(NomFichier,'\t',CTabOrigines::FctnTraiterLigne,this);
    }
     
    /*static*/ bool CTabOrigines::FctnTraiterLigne(const CChargeurFichierTexte& Chargeur, void* Contexte)
    {
    	return ((CTabOrigines*)Contexte)->TraiterLigne(Chargeur);
    }
     
     
    bool CTabOrigines::TraiterLigne(const CChargeurFichierTexte& Chargeur)
     
    //le chargeur ouvre le fichier, lit ligne par ligne et éclate la ligne, il n'y a donc plus rien à faire
    {
    	if (Chargeur.NombreChamps() == 4)
    	{
    		Ajouter(CChiens(Chargeur.Champs(2)));
    	}
    	return true;
    }
     
     
    void CTabOrigines::Afficher(const char* FiltreSurType) const
    {	long ordre = 0;
    	for (long n=0; n < Nombre(); n++)
    	{
    		if ( (FiltreSurType == NULL) || (strcmp(Element(n).Type(),FiltreSurType) == 0) )
    		{
    			ordre++;
    			printf("%s n°%ld :\n",Element(n).Type(),ordre);
    			Element(n).Afficher();
    		}
    	}
     
    }
     
    CChiens& CTabOrigines::Element(long UnIndice) const
    {
    	return (CChiens&)CTableauGenerique::Element(UnIndice);
    }
    Merci à vous tous.

    beegees

  12. #12
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 110
    Points
    110
    Par défaut
    Salut,

    Question bete qui a peut etre deja ete posee : dans ton cclassification.cpp tu as bien inclu ton cclassification.h ?

    Bon courage

  13. #13
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par manpe Voir le message
    Salut,

    Question bete qui a peut etre deja ete posee : dans ton cclassification.cpp tu as bien inclu ton cclassification.h ?

    Bon courage
    Salut,

    Merci pour ta réponse.

    Oui, chiens.h est inclus dans chiens.cpp

    j'ai changé le nom de la classe pour tester mais même problème.

    Je galère.

    Merci encore.

    beegees

  14. #14
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut tout le monde,

    J'utilisais en fait deux fichier header différent.

    Suite à de nombreux tests, je me suis enmellé les fichiers.

    Merci pour tout.

    beegees

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

Discussions similaires

  1. [MySQL] Insérer des données dans une table, mais ce n'est pas une table USER
    Par amerex dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/08/2008, 00h01
  2. Réponses: 6
    Dernier message: 27/01/2008, 17h18
  3. Activer automatiquement une référence si elle n'est pas activée?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/10/2007, 17h27
  4. Réponses: 6
    Dernier message: 23/12/2006, 17h36
  5. Réponses: 2
    Dernier message: 05/09/2006, 10h08

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