传值和传引用的区别
传值和传引用的区别
在C语言中,大都是通过值传递,C++也是继承了这一传统,C++里默认都是值传递,除非明确指出。
一、引用可以减少巨大的开销
但是在C++中值传递即”实参的拷贝“有时会带来很大的开销,看下面的例子:
test t;Temp_Foo(t,double(cnt));void Temp_Foo(test & temp,double val){ temp.array[0] = val;temp.array[99] = val;}
上面的代码编辑器没有对其进行扩充。
可以看出每一次的循环,值传递要比引用多调用一次默认构造函数和一次拷贝构造函数和一次析构函数,可见用引用可以减少不必要的调用,提高其效率。