Название: Непонятки с QTcpSocket и наследованием Отправлено: blood_shadow от Апрель 08, 2011, 16:42 В общем даже незнаю это баг или я чего-то не понимаю,
пишу почтовый клиент: есть класс Код
это класс обычных данных, которые нужны для авторизации, сам класс который занимается приемом\передачей запросов серверу почты наследуется от этого класса и QObject: Код
из-за того что есть слот Код , который реагирует на сигнал Код
в конце хедера пришлось добавить Q_DECLARE_METATYPE(QAbstractSocket::SocketState); Все хорошо, но если поменять местами классы в записи наследования, например Код то компоновщик начнет сыпать ошибками: Код: debug\moc_Letter.cpp:53:8: error: 'staticMetaObject' is not a member of 'SmtpAuthData' Это баг или это какая-то специфика наследования, в чем разница чередования в списке наследования? Название: Re: Непонятки с QTcpSocket и наследованием Отправлено: mutineer от Апрель 08, 2011, 16:53 Это фича - в документации написано, что в списке наследования QObject или его наследник должен идти первым
Название: Re: Непонятки с QTcpSocket и наследованием Отправлено: blood_shadow от Апрель 08, 2011, 16:57 Это фича - в документации написано, что в списке наследования QObject или его наследник должен идти первым пробежал бегло только что описание QObject, но такого не увидел, а где это написано?и просто интересно почему так? Название: Re: Непонятки с QTcpSocket и наследованием Отправлено: mutineer от Апрель 08, 2011, 17:37 Цитировать If you are using multiple inheritance, moc assumes that the first inherited class is a subclass of QObject. Also, be sure that only the first inherited class is a QObject. http://doc.trolltech.com/4.7/moc.html#multiple-inheritance-requires-qobject-to-be-first (http://doc.trolltech.com/4.7/moc.html#multiple-inheritance-requires-qobject-to-be-first) |