When we pass an object (say a) of Class A to another object (say b) of class B, what is the benefit of that. I understand that b now has access to the public functions of a. Therefore, say I need to calculate a value of b using some values calculated by functions in a. 1) I can either, in Main, calculate the values from a and pass it as arguments into the function of b OR 2) I can access the function of a within the function of b to calculate the values i need. I do not really see that why the second one should be preferred if indeed it is. The first can be achieved without passing one object into another. Any particular reasons why passing objects into another object is superior. All it essentially save is the number of variables we pass into functions and some space on Main. Pls advise.