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

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

一开始觉得没啥,但想想又不对劲

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

 

一波百度之后

 

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

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

原文链接: https://www.cnblogs.com/LIN-JW/p/12714756.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/196050

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午7:08
下一篇 2023年2月12日 下午7:08

相关推荐