Comment Re:Oh... my... god... (Score 1) 371
Yes. A friend can access any private member and do anything with it. But it is a project choice. It is very useful when you want to give access to a members to a other code but this access rights aren't spread to all classes like public members. It's good because it follows the "need to know principle". A piece of code must to know just whay it need to know. Nothing more. Just the class itself and it's friends has that rights. Ok. You can do something like that with, for instance, packages in Java. But in C++ there is no packages. It's about the language philosophy.