Russian Qt Forum
Ноябрь 26, 2024, 02:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Наследование от двух классов, какая разница в порядке записи  (Прочитано 4082 раз)
kdm
Гость
« : Февраль 23, 2011, 13:48 »

Только что попался на пример: наследование от двух классов.
Для нового пользовательского класса делаю наследование с public от двух классов QGraphicsItem и QObject (наследую QObject для сигнал-слотового механизма). Но компилятор мне ругается примерно такими словами:
Код:
debug\moc_graphicspixmapitem.cpp:46: error: 'staticMetaObject' is not a member of 'QGraphicsPixmapItem'
debug\moc_graphicspixmapitem.cpp: In member function 'virtual void* GraphicsPixmapItem::qt_metacast(const char*)':
debug\moc_graphicspixmapitem.cpp:66: error: 'qt_metacast' is not a member of 'QGraphicsPixmapItem'
debug\moc_graphicspixmapitem.cpp: In member function 'virtual int GraphicsPixmapItem::qt_metacall(QMetaObject::Call, int, void**)':
debug\moc_graphicspixmapitem.cpp:71: error: 'qt_metacall' is not a member of 'QGraphicsPixmapItem'
Почитав топик вот тут http://www.prog.org.ru/topic_4418_0.html, вдруг обратил внимание что последовательность классов при наследовании идет в другом порядке, т.е. не "public QGraphicsItem, public QObject", а "public QObject, public QGraphicsItem".
Университетский курс C++ был давно. С тех пор из-за того, что не сталкиваюсь часто с разными вещями, забываю многие вещи (если конечно я их помнил Веселый).

Просветите пожалуйста, в чем тут фишка? (книжки под рукой нету Грустный)
Записан
BRE
Гость
« Ответ #1 : Февраль 23, 2011, 14:10 »

Это скорее всего фишка не C++, а moc.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #2 : Февраль 23, 2011, 14:37 »

для С++ без разницы, скорее всего это нужно для moc, чтобы он определил, что класс - QObject.

http://doc.qt.nokia.com/latest/moc.html#multiple-inheritance-requires-qobject-to-be-first
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.