Overloading the Assignment Operator