1. If you want to modify the value of an argument through a function call, you should define the parameter as a reference type;
For example, to exchange a two-digit value with the Swap function, you should define the parameter as a reference type
2. To obtain multiple result values through a function call, you can also use reference parameters;
3. When passing large objects to a function, to avoid copying arguments to adjust efficiency and to use class types that cannot be copied
(whose copy constructor is a private class type) as the formal parameter type, should also the parameter is defined as a reference type.
However, the purpose of using the formal parameter is to avoid copying the arguments, The formal parameter should be defined as a const reference;
4. If you do not need to modify the value of an argument through a function call, you should not define the parameter as a reference type;
For example, in an absolute function abs, a formal parameter should not be defined as a reference type.
Some cases in which C + + defines a formal parameter as a reference type