Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Beginner
Feb 14, 2000

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.
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date