Const method that modifies *this without const_cast
问题 The following pattern has arisen in a program I'm writing. I hope it's not too contrived, but it manages to mutate a Foo object in the const method Foo::Questionable() const , without use of any const_cast or similar. Basically, Foo stores a reference to FooOwner and vice versa, and in Questionable() , Foo manages to modify itself in a const method by calling mutate_foo() on its owner. Questions follow the code. #include "stdafx.h" #include <iostream> using namespace std; class FooOwner;