【发布时间】:2017-02-24 22:24:39
【问题描述】:
我在 Ubuntu 14.04 上使用 Qt 4.8。
目前,我有以下代码:
void MyServer::processMessage()
{
QByteArray data;
...
...
emit newMessage(data);
}
--
定义newMessage 信号的正确方法是什么(在头文件中):
signals:
void newMessage(const QByteArray & newData);
或:
signals:
void newMessage(QByteArray newData);
如上所示,信号是在退出 processMessage 函数之前发出的,因此在发出该信号后,QByteArray data 将不再存在...
因此,我对定义信号的第一种方式的担忧是,它作为参数传递了对在发出newMessage 后不再存在的对象(实例)的引用。
提前感谢您的时间和耐心!
顺便说一句:我的应用是单线程的。
PS:如果应用程序是多线程的,情况会有所不同吗?
【问题讨论】:
标签: qt arguments parameter-passing signals-slots