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: All
Apr 24, 2000

Creating Immutable Constants

Although usually I don't recommend using macros in C++ code, there are a few exceptions. One such exception is when you want to create a truly immutable constant. Consider the following constant:

 
  const int MAX=512;

Seemingly, MAX's value can't be changed because it's const. However, on some platforms, a brute-force cast can change its value. For example:

 
  int *p = const_cast (&MAX); // remove constness
  *p= 100; // attempt to change MAX through a pointer

Although any attempt to change a const object causes undefined behavior according to the C++ standard, some compilers let this hack pass unnoticed. To disable such possible hacks altogether, you can use a macro instead of a const object:

 
  #define MAX 512

This time, MAX can't be changed.

Danny Kalev
 
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