Class Scoped Constants

Class Scoped Constants

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.

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist