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.