Accessing to enum values by '::' in C++

后端 未结 3 1055
逝去的感伤
逝去的感伤 2021-02-13 09:37

I have class like following:

class Car  
{  
public:  
    Car();  
    // Some functions and members and enums  
    enum Color
    {
              


        
3条回答
  •  迷失自我
    2021-02-13 10:07

    In current C++ (i.e. C++11 and beyond), you can already access enum values like that:

    enum Color { Red };
    Color c = Color::Red;
    Color d = Red;
    

    You can go further and enforce the use of this notation:

    enum class Color { Red };
    Color c = Color::Red;
    // Color d = Red;   <--  error now
    

    And on a sidenote, you now define the underlying type, which was previously only possible with hacky code (FORCEDWORD or so anyone?):

    enum class Color : char { Red };
    

提交回复
热议问题