C++ enums - which one is better?
Do not use "enum in class" for public usage. You should use namespace for the purpose. (If your compiler supports C++0x, then use enum class.) 

The problem with "enum in wrapper class" is header dependency. When declaration code wants to use some "enum in wrapper class" type, then it should also references the whole class information. Because you cannot physically separate enumeration from the wrapper class (one definition rule), it'll introduces heavier header dependency.

Moreover, because in C++, there can't be two separate definitions for one class so you cannot use forward declaration technique with "enum in wrapper class" like below.

// a.h
namespace A {
  enum Type {
    a,
    b
  };
}

// b.h
namespace A {
  enum Type; // forward declaration
}
A::Type function();