Question:
Is there a better way to scope constant values within a class other than by using “enum”?
class Foo {public: enum { valueOne = 1, valueTwo = 2 } EFooValues;};
It would be much nicer to write…
class Foo {public: const int valueOne = 1; const int valueTwo = 2; const char* stringOne = "hello";};
Answer:
You can use a const static int instead of an unnamed enum. For example:
class Foo {public: static const int valueOne = 1, static const int valueTwo = 2 static const int EFooValues = 3;};
Note, however, that some compilers (e.g. Visual C++) won’t let you initialize a const static int member inside the class’ body because this feature was added relatively recently to C++ and some vendors haven’t implemented it yet.