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 :

declarer un enum dans une classe


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 86
    Points
    86
    Par défaut declarer un enum dans une classe
    je voudrai faire un nouveau type (enum) pour ma classe,

    mais je ne sais pas ou declarer le enum!!!

    en fait le enum lui meme n a pas de raport avek les objets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class objet
    {
    private:
    	enum status{libre,loue,vendu};
    	status stat;
    };
    mais j en ai besoin dans la classe!!

    et je ne voudrai pas non plus en faire un global!

    que me conseillez vous??

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 86
    Points
    86
    Par défaut
    c est une bonne idee de le mettre en static??

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Points : 171
    Points
    171
    Par défaut
    C'est plutôt des accolades {}
    soit: enum status{libre,loue,vendu};

    Mais importe, ton type énuméré sera visible dans ta classe.

    definir en static un type ?

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 86
    Points
    86
    Par défaut
    et si je veux envoyer a une fonction membre un nouveau status pour changer stat!!

    puisque le enum n est pas connu endehors de ma classe!!

    comment je ferai?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Points : 171
    Points
    171
    Par défaut
    Revois ton architecture.

  6. #6
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Salut,
    Si tu veux t'en servir en dehors de ta class, mets le public.
    Le mettre en static ne servirait pas, puisque de toute manière chaque "variable" de l'enum vaudra pareil dans tous les objets.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Août 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 159
    Points : 171
    Points
    171
    Par défaut
    houlà !!!

    Un type defini à l'intérieur d'une classe n'est connu que par les membres de celle-ci.

  8. #8
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <iostream>
     
    class A {
          public:
                 enum status { a=1 , b , c } ;
    };
     
    int main()
    {
        int s = A::a;
        std::cout << s << std::endl; // affiche 1
        std::cin.get();
    }
    là tu vois bien que tu peux accéder à l'enum ... faut qu'elle soit publique, juste.

  9. #9
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 86
    Points
    86
    Par défaut
    j ai fait ca!!
    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
    class element
    {
    public:
     
    	element(typeElement,stat);
    	virtual affichElement()=0;
    	enum typeElement{livre,audio,video};
    	enum stat{demande,louable,reserve,loue};
     
    private:
     
    	typeElement type;
    	stat statut;
    	long reference;
    	static long nbrElements;
     
    };
    ainsi que...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    element::element(typeElement type1,stat statut1)
    {
    	type=type1;
    	statut=statut1;
    }
    mais ca me mettait une erreure!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    --------------------Configuration: Projet - Win32 Debug--------------------
    Compiling...
    elements.cpp
    c:\documents and settings\davidle\desktop\projet\elements.h(10) : error C2629: unexpected 'class element ('
    c:\documents and settings\davidle\desktop\projet\elements.h(10) : error C2238: unexpected token(s) preceding ';'
    C:\Documents and Settings\davidle\Desktop\Projet\elements.cpp(6) : error C2511: 'element::element' : overloaded member function 'void (enum element::typeElement,enum element::stat)' not found in 'element'
            c:\documents and settings\davidle\desktop\projet\elements.h(7) : see declaration of 'element'
    Error executing cl.exe.
     
    elements.obj - 3 error(s), 0 warning(s)

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 86
    Points
    86
    Par défaut
    mais la j ai mis les enum avant le constructeur et ca marche!!

    j imagine qu il ne pouvait pas les recevoir sans savoir c est quoi!!

    ou quelquechose su genre!!

  11. #11
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Comme je ne suis pas devin, tu peux montrer ton erreur?

  12. #12
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 86
    Points
    86
    Par défaut
    jl ai editer...

  13. #13
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Ah ben oui pardon je n'avais pas encore fait attention à ça.
    Tu ne peux pas lui demander de recevoir et traiter un Chien si il ne sait pas ce qu'est un chien!

    Résolu? Cette solution te convient?

  14. #14
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 180
    Points : 86
    Points
    86
    Par défaut
    regarde ce que j ai ecrit a 19:22!!

  15. #15
    Alp
    Alp est déconnecté
    Expert éminent sénior

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par d-a-v-e
    mais la j ai mis les enum avant le constructeur et ca marche!!

    j imagine qu il ne pouvait pas les recevoir sans savoir c est quoi!!

    ou quelquechose su genre!!
    J'ai regardé et répondu ici :
    Citation Envoyé par Alp
    Ah ben oui pardon je n'avais pas encore fait attention à ça.
    Tu ne peux pas lui demander de recevoir et traiter un Chien si il ne sait pas ce qu'est un chien!

  16. #16
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    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 275
    Points : 10 985
    Points
    10 985
    Par défaut
    C'est très bien en privé.
    Sinon, pimpl ?
    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...

Discussions similaires

  1. Probleme de declaration de variable dans une classe
    Par mattmax dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/02/2014, 14h51
  2. Type enum dans une classe
    Par arthurembo dans le forum Langage
    Réponses: 2
    Dernier message: 21/05/2009, 12h38
  3. passer un enum dans une classe
    Par dhoorens dans le forum C++
    Réponses: 4
    Dernier message: 09/08/2008, 16h27
  4. enum dans une classe ?
    Par tintin72 dans le forum C++
    Réponses: 5
    Dernier message: 14/11/2007, 18h52
  5. Réponses: 2
    Dernier message: 17/12/2005, 20h52

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