![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
MishaUA |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Сам я в основном пишу Под микроконтроллеры на Си и в С++ не являюсь проффи. Сейчас столкнулся с проблемами при наследовании классов.
Вобщем, есть такой кусочек кода:
в *.cpp:
При компиляции ошибка mingw32-make[1]: *** [debug/classs.cpp] Error 1. Если убрать функцию sll(), то ошибки нет. Что я сделал не так? |
|
|
ilyabvt |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: ![]() ![]() ![]() |
Может потому что макрос Q_OBJECT отсутствует в объявлении класса cl2.
|
|
|
Steklova Olga |
![]()
Сообщение
#3
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 198 Регистрация: 27.9.2011 Из: Санкт-Петербург Пользователь №: 2912 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Если убрать функцию sll(), то ошибки нет. Что я сделал не так? Сначала определись: sll() у тебя должен быть слотом или методом класса (как ты говоришь, функцией)? Сейчас у тебя в коде указано, что sll() - это не просто функция, а слот. А чтобы класс работал с сигналами и слотами, он должен быть потомком QObject. Поэтому, если sll() действительно должен быть слотом, то в классе cl2 надо указать слово Q_OBJECT:
Если же sll() должен быть private-методом класса, то его надо описать в разделе private:
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
При компиляции ошибка mingw32-make[1]: *** [debug/classs.cpp] Error 1. это не ошибка, это резюме - "ошибок столько-то штук"смотри сообщения сборки выше - там описаны ошибки если ориентироваться только на приведённый код, то он должен компилироваться без запинок в Qt4 |
|
|
MishaUA |
![]()
Сообщение
#5
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Сначала определись: sll() у тебя должен быть слотом или методом класса (как ты говоришь, функцией)? Сейчас у тебя в коде указано, что sll() - это не просто функция, а слот. А чтобы класс работал с сигналами и слотами, он должен быть потомком QObject. Поэтому, если sll() действительно должен быть слотом, то в классе cl2 надо указать слово Q_OBJECT:
sll() - это слот (сорри, что затупил). Добавлять Q_OBJECT тоже пробовал, но тогда вылазит ошибка error: within this context (прям на Q_OBJECT) и 'class QObject QObject::QObject' is inaccessible PS: пишу в Qt5 |
|
|
MishaUA |
![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Капец, такие же ошибки даже в этом куске кода:
Может, надо копать в другом месте? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
попробуй просто полностью пересобрать проект
make distclean qmake make |
|
|
MishaUA |
![]()
Сообщение
#8
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
А я это и делаю при сборке))
В Creater жму "пересобрать", ну и еще перед этим пробовал "Очистить" - не помогло. Может ли кто нить у тебя в хидере всатвить этот код и попробовать? PS: надо Qt5 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
MishaUA |
![]()
Сообщение
#10
|
Участник ![]() ![]() Группа: Участник Сообщений: 185 Регистрация: 28.4.2013 Пользователь №: 3810 Спасибо сказали: 13 раз(а) Репутация: ![]() ![]() ![]() |
Чего то я в настройках этого пункта не нашел))).
Я пробовал даже полностью удалять папку build-project-Desktop-Debug, в которой собирается программа, но безрезультатно((( только что создал новый проект и закинул в хидер
Результат тот же((((( |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 27.2.2025, 14:14 |