Qt MOC:使用默认和复制构造函数时?

时间:2013-08-05 12:12:43

标签: c++ qt moc

我必须将自己的类型添加到Qt MetaObject System(注册元类型)。由于手册,必须满足以下要求:

  • 默认构造函数
  • 复制构造函数

我的类对默认构造函数没有意义;它的创建只是为了满足QT MOS。但是:Qt如何,何时以及为何调用默认ctor?如果我的类存储指向动态创建的元素的指针会发生什么:MOS会创建这样的类的副本,然后,它会删除它并释放所有指针吗?

1 个答案:

答案 0 :(得分:0)

  

将MOS创建此类的副本,然后,它将删除它并释放所有指针?

是的,在宣布活动时,会先复制它们。这样做是为了简化从一个线程到另一个线程的事件发送。

  

如果我的类存储指向动态创建元素的指针会发生什么:MOS会创建这样的类的副本,然后,它会删除它并释放所有指针吗?

这就是自定义拷贝构造函数的用途。这是你的任务,以确保一切都被妥善复制,并且不存在内存泄漏(或其他问题)。


最后,我找到了谈话的地方。它位于this link

  

可选的type参数描述了要建立的连接类型。特别是,它确定特定信号是立即传送到插槽还是排队等待稍后传送。 如果信号排队,参数必须是Qt的元对象系统已知的类型,因为Qt需要复制参数以在幕后的事件中存储它们。如果您尝试使用排队连接并获取错误消息