我必须将自己的类型添加到 Qt MetaObject System(注册元类型)。由于手动,必须满足以下要求:
- 默认构造函数
- 复制构造函数
- 析构函数
我的类对默认构造函数没有意义;它将仅为满足 QT MOS 而创建。但是:Qt 如何、何时以及为何调用默认 ctor?如果我的类存储指向动态创建的元素的指针会发生什么:MOS 会创建此类类的副本,然后将其删除并释放所有指针吗?
MOS会创建此类的副本,然后将其删除并释放所有指针吗?
是的,在宣布事件时,它们首先被复制。这样做是为了简化从一个线程到另一个线程的事件发送。
如果我的类存储指向动态创建的元素的指针会发生什么:MOS 会创建此类类的副本,然后将其删除并释放所有指针吗?
这就是自定义复制构造函数的用途。您的任务是确保所有内容都被正确复制,并且不会出现内存泄漏(或其他问题)。
最后,我找到了它说话的地方。它在这个链接中:
可选的 type 参数描述了要建立的连接类型。特别是,它确定一个特定的信号是立即传送到一个时隙,还是在稍后的时间排队等待传送。如果信号排队,参数必须是 Qt 的元对象系统已知的类型,因为 Qt 需要复制参数以将它们存储在幕后的事件中。如果您尝试使用排队连接并收到错误消息