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

Tip of the Day
Language: C++
Expertise: Advanced
May 31, 2006

Modifying Member Variables Inside const Member Functions

Declaring a member variable as mutable is not the only way to mark it as modifiable within a constant member function. It is actually not really good practice to mark a member variable as mutable because this allows all const member functions to modify this member variable.

The compiler invisibly passes this pointer (Class X* this) to every member function, while, in the case of the constant member function, the compiler passes this pointer (const X* this).

The immutability of this pointer can be casted away using const_cast and then used for modifying any member vaiable required. Here's an example:

void X::ConstMemberFunc() const
	X *ptr = const_cast<X*>(this);

Amit Gupta
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date