title: In what scenarios should one declare a member function a friend?
body: <p>In what kind of scenarios would we declare a member function as a 'friend function' ?..What exact purpose does 'friend function' which defies one of central concept of 'Encapsulation' of OOP serve?</p>