title: Is using a enum class inside of a class class un-necessary
body: <p>I should start by saying I'm fairly new to OOP.  I am trying to write a portable class which will probably be used in multiple programs.  The class requires multiple enumerated lists to store information which are only relevant to the class so I was planning on nesting the enum inside the class. My questions are</p>
  
  <ul>
  <li><p>Is there any reason to use an <code>enum class</code> inside a class, or should I just use <code>enum</code>? Just curious.  I posted sample code for reference below.</p></li>
  <li><p>Is there any reason why it would be a really bad idea to make enums in a class public?</p></li>
  </ul>
  
  <hr>
  
  <pre><code>#include &lt;iostream&gt;
  
  enum class Color {
      red     = 0,
      green   = 1,
      blue    = 2
  };
  
  class CodeLibray {
  public:
      enum Color2 {
          red     = 0,
          green   = 1,
          blue    = 2
      };
      enum class Color3 {
          red     = 0,
          green   = 1,
          blue    = 2
      };
      Color color;
      Color2 color2; 
      Color3 color3;
  }; 
  
  int main(){
      CodeLibray c;
      c.color = Color::red;
      c.color2 = CodeLibray::Color2::blue;
      c.color3 = CodeLibray::Color3::blue;
  }
  </code></pre>