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

Langage C++ Discussion :

typedef d'une enum


Sujet :

Langage C++

  1. #21
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par screetch Voir le message
    ah. OK. Une andouille. J'avais pas compris désolé
    Une AAA (de chez std:: && pool) !
    Notation qui se fait rare, de nos jours.

  2. #22
    Membre émérite Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Par défaut
    Euh, juste une question, plus théorique.

    Pour cette solution :
    Citation Envoyé par Emmanuel Deloget Voir le message
    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
    class mon_enum
    {
    public:
      static const mon_enum v1;
      static const mon_enum v2;
      static const mon_enum v4;
    private:
      enum real_enum 
      { real_enum_v1, real_enum_v2, real_enum_v3 };
      mon_enum(const real_enum& e) : m_value(e) { }
      real_enum m_value;
    public:
      mon_enum(const mon_enum& other) : m_value(other.m_value) { }
      mon_enum() : m_value(real_enum_v1) { }
     
      bool operator==(const mon_enum& other) const
      { return m_value == other.m_value; }
     
      bool operator!=(const mon_enum& other) const
      { return m_value != other.m_value; }
     
      int get() const // utilisé pour les switch/case
      { return static_cast<int>(m_value); }
     
      mon_enum& operator=(const mon_enum& other)
      { mon_enum(other).swap(*this); return *this; }
     
      void swap(mon_enum& other)
      { std::swap(m_value, other.m_value); }
    };
    , l'encapsulation d'une enum est vraiment indispensable ?
    On pourrait initialiser les membres statiques directement avec des int, non ?

    Autre chose, le préfixe « m_ » a une signification particulière ?
    J'ai vu que pour la STL il faisaient la même chose (enfin c'est plutôt « _M_ »).
    « M » pour « My », peut-être ?

  3. #23
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par Steph_ng8 Voir le message
    Autre chose, le préfixe « m_ » a une signification particulière ?
    member

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. accès aux éléments d'une enum
    Par aymeric__ dans le forum C++
    Réponses: 6
    Dernier message: 17/08/2006, 21h17
  2. Affectation/récupération de valeurs dans une Enum ?
    Par elitost dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2006, 16h12
  3. Réponses: 4
    Dernier message: 25/02/2006, 13h30
  4. Réponses: 17
    Dernier message: 16/10/2005, 21h01
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

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