All implicit parameters are passed by reference. If they are conceptually passed by value, then the const keyword needs to be used in the member function definition. By default explicit parameters are passed by value. The & symbol needs to be supplied to the explicit parameters if they are to be passed by reference.