gpt4 book ai didi

C++ 和 QT4.5 - 传递一个 const int& 矫枉过正?通过引用传递对信号/插槽有帮助吗?

转载 作者:可可西里 更新时间:2023-11-01 16:57:46 26 4
gpt4 key购买 nike

两个问题合而为一...

对于实时视频处理应用程序,我有许多函数每帧调用多次。听取有关 const 和按引用传递的建议,这些函数的签名有点像这样

void processSomething(const int& value);

当我不断输入几个额外的字符时,我想知道这是否有点矫枉过正。

第二个问题,关于通过引用传递的主题,在 QT 的槽/信号机制中,通过引用传递是否有助于防止在正常函数调用中复制对象?

最佳答案

是的,这是矫枉过正,实际上会导致代码比按值传递 int 慢。一个 int 是四个字节;引用(本质上是一个内存地址)也是四个字节(在 32 位机器上)或八个字节(在 64 位机器上)。因此,您实际上可能需要将更多 信息传递给该函数——此外,您还需要取消对该引用的引用。

但是,如果您要传递比 int 更大的东西,使用 const 引用会更有效,因为您可以只传递四个或八个字节,而不必复制整个对象。

编辑 关于 Qt:是的,如果插槽采用对对象的 const 引用,那么这样做的原因是为了节省复制对象的开销。

关于C++ 和 QT4.5 - 传递一个 const int& 矫枉过正?通过引用传递对信号/插槽有帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com