Login | Register   
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
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);
	
	ptr->....

}
Amit Gupta
 
Comment and Contribute

 

 

 

 

 


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

 

 

Sitemap