信号与槽引用传递

信号与槽是可以引用传递的,根据我的直觉,应该和函数的引用传递差不多,效率比值传递高。

看了很多别人的例子或者教学视频,信号与槽都是简单的值传递,但是看了Qt的手册,里面几乎都是引用或者指针传递参数。

如果是只读的,就加上const

 

PS:

在同一个线程中

当信号和槽都在同一个线程中时,值传递参数和引用传递参数有区别: 值传递会复制对象;引用传递不会复制对象;因为此时就是普通回调函数。

 

不在同一个线程中

当信号和槽不在同一个线程中时,分两种情况。

①、connect时使用AutoConnection(跨线程默认是QueuedConnection):值传递参数和引用传递参数没有区别,都会复制对象;【事件】

②、connect时使用DirectConnection,测试结果和在同一线程中的结果相同。【回调】
总结就是:回调时值传递会复制对象,引用不会;使用事件时,都会复制对象。

posted @ 2018-08-27 16:06  朱小勇  阅读(1484)  评论(0)    收藏  举报