1.使用引用传参,不会创建拷贝,可以提升效率并节省了空间,比如我们要传一个很大的结构体,用引用传参就省去了拷贝这个结构体的开销。
2、在函数中对该变量进行修改,则参数返回后修改依然存在,与值传递不同;
3、C++的标准不允许复制构造函数传值参数,最好是传引用,在下面代码中,复制构造函数A(A other)传入的参数是A的一个实例。由于是传值参数,我们把形参复制到实参会调用复制构造函数。因此如果允许复制构造函数传值,就会在复制构造函数内调用复制构造函数,就会形成永无休止的递归调用从而导致栈溢出。因此C++的标准不允许复制构造函数传值参数,在Visual Studio和GCC中,都将编译出错。要解决这个问题,我们可以把构造函数修改为A(const A& other),也就是把传值参数改成常量引用。