devxlogo

Modifying Member Variables Inside const Member Functions

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(this);		ptr->....}

devx-admin

Share the Post: