We make a non-member function a friend of a class when we want it to access that class\'s private members. This gives it the same access rights as a static member function w
Friend function- when you need access to a different class member, but the classes are not related. Static function- when you no not need access to the 'this' pointer. But, I have a feeling there is more to it....