c++ 函数形参使用常引用 const &

今天看到一段代码,函数的形参类型是 const A &(A是定义的一个类)函数

一开始以为没啥,但想一想又不对劲.net

const就是常量嘛,不想让这个参数被修改,引用就是起别名,修改形参的值,实参也会改变(其实就是修改同一个变量),那声明成引用变量的意义是什么设计

 

一波百度以后blog

 

&是为了引用传递,防止值传递的复制数据get

const是为了保护数据不被改动变量

const&防止传值时拷贝构造函数的调用开销百度

 

简单来讲就是,在不加const 和 & 的状况下,进行普通的函数调用,必然会有值传递,若是数据量大花费时间长(且有些类型在设计上拒绝复制)构造函数

引用的话只是起别名,仍是这个变量,就不用进行值传递,但这个就能够改变值,因此再加上const修饰引用

 

结论数据

若是不需改变形参的值又不用做参数传递(实参赋值给形参),用常引用做形参适应面最广:实参能够是变量也能够是常量。

若是须要改变形参的值,用引用做形参最合适:实参必须是变量不容许是常量。

若是不需改变形参的值又能够用做参数传递(实参赋值给形参),用普通变量做形参:多了传递参数的开销。

 

参考资料:

https://blog.csdn.net/juddi/article/details/82761397

https://blog.csdn.net/guoyilongedu/article/details/44243353?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5

相关文章
相关标签/搜索