What is the difference between pass by reference and pass by value?
passing an object by value is defined by the copy constructor of that object's class. This can make pass-by- value an extremely expensive operation.