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 :

accès aux éléments d'une enum


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut accès aux éléments d'une enum
    bonjour,

    je compile avec gcc et j'ai du mal à accéder aux éléments d'une enum. voici sa déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class A
    {
    public:
     typedef enum _enuma
     {
      A1,
      A2,
      A3
     } enuma;
     
     A(enuma valeur);
    }
    et j'essaye de l'utiliser de la façon suivante, ailleurs dans mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A a = new A(A::enuma::A2);
    gcc me renvoit l'erreur suivante :
    'class A::enuma' is not a class or namespace
    'A2' was not declared in this scope
    qqun aurait une idée sur la manière d'accéder à cette énumération ?

    merci d'avance

    aymeric.

    Balises ajoutées

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut


    Déjà essaie avec la version épurée C++ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     enum
    {
    A1,
    A2,
    A3
    } enuma;

  3. #3
    Membre actif

    Étudiant
    Inscrit en
    Mai 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 200
    Points : 276
    Points
    276
    Par défaut
    bonjour

    pour commencer new sert à allouer de la mémoire donc il s'utilise avec les pointeurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A *monA;
    monA = new A(.....);
    corige déjà ça.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    258
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 258
    Points : 307
    Points
    307
    Par défaut
    La version qui marche :

    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 A
    {
    public:
        enum enuma
        {
            A1,
            A2,
            A3
        };
     
        A(enuma valeur);
    };
     
    A a(A::A2);

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    en fait c'est un pointeur, c'est juste une erreur de recopie...

    par contre, pour la version épurée C, le pb est que je ne peux pas changer ce fichier, c'est un .h d'une lib que j'utilise; ce code compile sous VC++ et j'essaye de le porter sous gcc.
    en fait, la question que je me posais est comment faire syntaxiquement pour accéder aux valeurs de l'enum.

    ps : dsl pour la balise code

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par roulious
    La version qui marche :

    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 A
    {
    public:
        enum enuma
        {
            A1,
            A2,
            A3
        };
     
        A(enuma valeur);
    };
     
    A a(A::A2);

    Parfait merci
    en effet ça marche

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Ça, c'est du .Net. Mais comme cela a déjà été dit, en C++ standard, on utilise A::A2.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. [Visual C++/Assembleur] Accès aux éléments d'une classe
    Par barhili04 dans le forum x86 32-bits / 64-bits
    Réponses: 1
    Dernier message: 09/11/2009, 17h27
  2. accès aux éléments d'une structure
    Par titou35 dans le forum Débuter
    Réponses: 4
    Dernier message: 05/03/2009, 09h23
  3. Accès aux éléments d'une image
    Par Nates dans le forum OpenCV
    Réponses: 24
    Dernier message: 01/08/2008, 14h56
  4. Réponses: 0
    Dernier message: 31/08/2007, 20h38
  5. Accès aux éléments d'une structure
    Par licorne dans le forum Pascal
    Réponses: 1
    Dernier message: 15/02/2007, 17h44

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