Я должен добавить свой собственный тип в Qt MetaObject System (зарегистрировать метатип). Из-за руководства, следующие требования должны быть выполнены:
Мой класс не имеет смысла с конструктором по умолчанию; он будет создан только для удовлетворения требований QT MOS. Однако: как, когда и почему Qt вызывает ctor по умолчанию? Что произойдет, если мой класс сохранит указатели на динамически созданные элементы: создаст ли MOS копию такого класса, а затем удалит ее и освободит все указатели?
MOS создаст копию такого класса, а затем удалит ее и освободит все указатели?
Да, при объявлении событий они сначала копируются. Это делается таким образом, чтобы упростить отправку событий из одного потока в другой.
Что произойдет, если мой класс сохранит указатели на динамически созданные элементы: создаст ли MOS копию такого класса, а затем удалит ее и освободит все указатели?
Вот для чего нужен пользовательский конструктор копирования. Это ваша задача, чтобы убедиться, что все копируется нормально, и утечка памяти (или другая проблема) невозможна.
Наконец, я нашел, где это говорит. Он находится в эта ссылка :
Необязательный параметр type описывает тип устанавливаемого соединения. В частности, он определяет, доставляется ли конкретный сигнал в слот немедленно или ставится в очередь для доставки в более позднее время. Если сигнал находится в очереди, параметры должны быть типов, которые известны мета-объектной системе Qt, потому что Qt необходимо скопировать аргументы, чтобы сохранить их в событии за сценой. Если вы попытаетесь использовать подключение в очереди и получите сообщение об ошибке
Других решений пока нет …