张纪生 2023-10-16 09:22 采纳率: 0%
浏览 11

侯捷C++中的函数传const T&真的实用吗?

侯捷在面向对象编程中提到的关于函数入参时,关于是pass by value 还是 pass by reference推荐了传引用的方式,const T&,但是这种使用在实际工作中真的用得到吗?最近跟朋友讨论这个问题时被怼了,朋友认为二者在时间上的差异实际相差并不大,可以说是微乎其微,如果在项目中也实时的去考虑这种方式的话,在时间成本和人力成本上会有所耗费,综合下来可以说是负收益,各位有什么其它见解吗?

  • 写回答

2条回答 默认 最新

  • 爱晚乏客游 2023-10-16 11:19
    关注

    你说的差异不大是你传的东西小,实际项目中传个一两G的数组是个正常的事情,这时候你看下有无影响,而且大项目传这个东西不是说只有一两个地方传,是多个函数多次传递的,除了时间效率外,你还要考虑下内存影响,每次都给你复制一份?不是所有的环境都要充足的内存给你用的,能省一点是一点,加个const的东西哪来的时间成本和人力成本?
    实际项目中,看具体要求,除了一些常量外,很多真的就是能传指针或者引用的,就一定是传指针和引用,特别是一些多次调用的函数,你看着就几毫秒的区别,调用个几万次你看看?而这种情况常年累月的叠加,是个很大的提升的。如果你不希望在函数内被修改原始值,就加个const。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 10月16日