Friend classes are used when two or more classes are designed to work together and
need access to each other's implementation in ways that the rest of the world
shouldn't be allowed to have. In other words, they help keep private things
private. For instance, it may be desirable for class DatabaseCursor to have more
privilege to the internals of class Database than main() has.