reference的好处
(1)可以直接对传入的对象进行修改.
(2)可以降低复制大型对象的负担
//如果我们定义这样一个函数
void display( const vector<init> &vec){
//......
......//
}
如果我们的函数实现本来就不打算改变实际对象,加上const可以使得阅读程序的人明白,我们进行地址传递主要是为了避免复制操作,而不是为了进行修改.
是否有和reference效用相同的写法?
可以使用pointer形式传递,此种写法和reference写法效用相同:传递的是对象地址,而不是对象的复制品.
两者唯一的区别在于用法不同,需要注意的地方在于,reference一定代表某个对象,但是pointer可能不指向某个实际对象.
何时使用地址传递?
除非我们在写码时需要修改参数值,否则在传递内建类型时使用值传递,地址传递主要用来传递class objects.