If I have a program that creates objects of two different classes (A and B), and B contains other objects (BB), which in turn contains still other objects (BBB)...
...and if A needs to get a value from BBB...
...is it better to use a series of get() functions (B.get() calls BB.get() calls BBB.get()), or is there a cleaner way to do this with "friending?"