I came across the following \"strange\" feature today - if you have a reference to an object from the class A in the body of the class A you can access the private fields of
Since f() is a member of Foo, it has the privilege to access the private members of Foo. It's not a surprise to me.