RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: C++
Expertise: Intermediate
Mar 4, 2003

Using the Const_cast Operator

The const_cast operator takes the form:
    const_cast<T> (expr)

It is used to add or remove the ``const-ness'' or ``volatile-ness'' from a type. Consider a function, f, which takes a non-const argument:
   double f( double& d );

Say you wish to call f from another function g:
   void g (const double& d)
     val = f(d);

Because d is const and should not be modified, the compiler will complain because f may potentially modify its value. To get around this dilemma, use a const_cast:
  void g (const double& d)
      val = f(const_cast<double&>(d));

This strips away the ``const-ness'' of d before passing it to f. You cannot use const_cast for any other types of casts, such as casting a base class pointer to a derived class pointer. If you do so, the compiler will report an error.
Sridhar Reddy
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date