#include <stdio.h>
class A
{
A* p;
int m_Value;
public:
A():p(this),m_Value(0){}
int GetValue( void ) const { return m_Value; }
// const member function
void SetValue( int value ) const { p->m_Value = value; }
};
int main( void )
{
const A a;
printf( "%d\n", a.GetValue() );
a.SetValue( 5 );
printf( "%d\n", a.GetValue() );
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjbGFzcyBBCnsKCUEqIHA7CglpbnQgbV9WYWx1ZTsKcHVibGljOgoJQSgpOnAodGhpcyksbV9WYWx1ZSgwKXt9CglpbnQgR2V0VmFsdWUoIHZvaWQgKSBjb25zdCB7IHJldHVybiBtX1ZhbHVlOyB9CgkKCS8vIGNvbnN0IG1lbWJlciBmdW5jdGlvbgoJdm9pZCBTZXRWYWx1ZSggaW50IHZhbHVlICkgY29uc3QgeyBwLT5tX1ZhbHVlID0gdmFsdWU7IH0KfTsKCmludCBtYWluKCB2b2lkICkKewoJY29uc3QgQSBhOwoJcHJpbnRmKCAiJWRcbiIsIGEuR2V0VmFsdWUoKSApOwoJYS5TZXRWYWx1ZSggNSApOwoJcHJpbnRmKCAiJWRcbiIsIGEuR2V0VmFsdWUoKSApOwogICAgcmV0dXJuIDA7Cn0=