Название: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 07:59 суть проблемы заключается в том что у меня есть 2-е формы. одна главная а друга вызывается по нажатию кнопки на главной форме. так вот на второй форме есть переменные которые я бы хотел использовать в 1 форме(главной).
описал так Код: public: int bit =0; qulonglong speed =0; int stopBit =0; char chetnost[10]; Название: Re: публичные переменные Отправлено: mutineer от Май 11, 2011, 08:05 Убери инициализацию переменных (которая "=0")
Но было бы неплохо увидеть хотя бы сообщения компилятора... Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:08 все равно ругается на public
Название: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 08:08 Инициализация в теле класса позволительна только для интегральных констант.
Поэтому "обзовите" bit, speed и stopBit как "static" либо перенесите их инициализацию в конструктор. И причём здесь Пользовательский интерфейс (GUI) ??? Название: Re: публичные переменные Отправлено: mutineer от Май 11, 2011, 08:09 Выложи сообщения компилятора и код класса
Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:11 выдает следующее : 1)expected ';' before 'public'
2) expected primary-expression ';' before 'public' Название: Re: публичные переменные Отправлено: Nimbus от Май 11, 2011, 08:12 И на будущее, лучше используйте методы get/set для получения или изменения переменных.
Очень не люблю, когда виджеты называют формами Название: Re: публичные переменные Отправлено: mutineer от Май 11, 2011, 08:13 Код класса где?
Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:15 проблема решена. но у меня на виджите есть поле для ввода слова. как его перегнать в переменную char
chetnost = (ui_m->lineEdit_4->text()).????? какой тип поставить ? Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:18 И на будущее, лучше используйте методы get/set для получения или изменения переменных. Очень не люблю, когда виджеты называют формами а как ими пользоваться ? я просто новичек в этом а литературу читаю пока не встречал Название: Re: публичные переменные Отправлено: Nimbus от Май 11, 2011, 08:22 проблема решена. но у меня на виджите есть поле для ввода слова. как его перегнать в переменную char В char перегнать нельзя - это один байт. метод text() возвращает QString, а QString - это строка, а строка подразумевает несколько байт, значит, можно получить лишь указатель на первый символ и размер, т. е. перегнать в char* (QChar*), для этого есть метод data(). Типаchetnost = (ui_m->lineEdit_4->text()).????? какой тип поставить ? ui_m->lineEdit_4->text().data() Только вот надо ли оно вам?:) А если новичёк, то лучше не лезьте сразу в Qt. Лучше обычный C++ изучите для начала ;) Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:22 перенес переменные в описания класса компилятор выдал ошибку
:: error: collect2: ld returned 1 exit status Название: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 08:22 Во-первых, тебе сюда Вопросы новичков (http://www.prog.org.ru/board_60_0.html).
Во-вторых, С++ ты не знаешь, читать документацию ты не хочешь, мозгу свою поднапрячь не хочешь... Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:23 я с++ на среднем уровне знаю. а так на си шарпе работаю но начальник выдал задачу для реализации на Qt
Название: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 08:26 Цитата: StatuS74 я с++ на среднем уровне знаю. +Цитировать chetnost = (ui_m->lineEdit_4->text()). Здесь даже начальным уровнем не пахнет :(Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:28 GreatSnake может хватит тут флудить.
Название: Re: публичные переменные Отправлено: mutineer от Май 11, 2011, 08:30 Без кода тебе вряд ли тут нормально смогут помочь
Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:32 код класса
Код: #ifndef CONNECT_ADAPTERAPN1444_H Название: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 08:34 Цитата: StatuS74 GreatSnake может хватит тут флудить. Нет не хватит.У тебя отсутствуют базовые знания, а ты не желая заняться самообразованием сразу лезешь в профессиональный форум. Конечно, зачем тебе читать книжки, смотреть описание классов в ассистенте, ведь намного проще взять да спросить. Порочная, однако, практика :( Название: Re: публичные переменные Отправлено: Igors от Май 11, 2011, 08:47 StatuS74, конечно сказанное GreatSnake звучит высокомерно и обидно (нехорошо клевать новичка), но по существу он прав, любой форум не предназначен для изучения базовых основ. Почитайте любую книгу по С++ (а еще лучше по С) - это нетрудно и интересно.
Название: Re: публичные переменные Отправлено: Nimbus от Май 11, 2011, 08:50 я с++ на среднем уровне знаю. а так на си шарпе работаю но начальник выдал задачу для реализации на Qt Я тоже на сишарпе работаю (а по ночам сижу в инете с красными глазами и восхваляю OpenSource ;D ). Только вот, шарпом лучше всего пользоваться ПОСЛЕ полного познания C++, а иначе фигня выйдет.А насчёт ошибки collect2: ld returned 1 exit status - она возникает во многих случаях, когда компилятору чего-то не хватает, либо он что-то не может сделать (например, если исполняемый модуль ещё висит в процессах, а вы его пытаетесь перезаписать на диске, либо не хватает каких-то реализаций объявленных методов класса. если пользуетесь Qt Creator, то можете посмотреть ошибку в консоли сборки - там полностью весь вывод сборщика и мока. Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:50 я бланша читаю в данный момент. а что вы хотели от студента ??? очень крутых знаний ? я и пошол работать что бы не делать дурацких лаб. но всеже из за чего ошибка error: collect2: ld returned 1 exit status. не пойму в интернете читал методы исправления не помгло.
Название: Re: публичные переменные Отправлено: Nimbus от Май 11, 2011, 08:53 я бланша читаю в данный момент. а что вы хотели от студента ??? очень крутых знаний ? я и пошол работать что бы не делать дурацких лаб. но всеже из за чего ошибка error: collect2: ld returned 1 exit status. не пойму в интернете читал методы исправления не помгло. Весь текст из консоли сборки сюда запоститеНазвание: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 08:54 конечно сказанное GreatSnake звучит высокомерно и обидно (нехорошо клевать новичка) Согласен, малость переборщил. Но, блин, спрашивал бы в соответстующих ветках форума, к нему бы и относились бы по-другому.А то сразу в GUI... Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 08:54 mingw32-make: Leaving directory `C:/Qt/2010.05/test_adaptera-build-desktop'
debug/moc_connect_adaptera.o:C:\Qt\2010.05\test_adaptera-build-desktop/debug/moc_connect_adaptera.cpp:76: undefined reference to `connect_adaptera::on_pushButton_2_clicked()' collect2: ld returned 1 exit status mingw32-make[1]: *** [debug\test_adaptera.exe] Error 1 mingw32-make: *** [debug] Error 2 Процесс "C:/Qt/2010.05/mingw/bin/mingw32-make.exe" завершился с кодом %2. Возникла ошибка при сборке проекта test_adaptera (цель: Настольный компьютер) Во время выполнения сборки на этапе "Сборка" Название: Re: публичные переменные Отправлено: Nimbus от Май 11, 2011, 08:56 undefined reference to `connect_adaptera::on_pushButton_2_clicked()
Это значит, что этот метод у вас объявлен в .h, но в .cpp нет его реализации Название: Re: публичные переменные Отправлено: StatuS74 от Май 11, 2011, 09:00 а понял. это я перемудрил. кнопки сначало 2 было потом я удалил а не затер в слотах.
спасибо всем Название: Re: публичные переменные Отправлено: ieroglif от Май 11, 2011, 09:50 код класса объяви каждую переменную с отдельной строки.Код: #ifndef CONNECT_ADAPTERAPN1444_H я уже не помню где меня это настигло, то ли в виндовом компиляторе, то ли в линуховом, но один из них никак не хотел воспринимать объявления нескольких переменных в одну строку. кроме того: 1. # include "qstring.h" просто #include <QString> если подключаемый путь пишется в <> - то ищется в PATH, если в "" - то в директории проекта 2. QString chetnost[10]; - ты создаёшь массив из 10и QString-ов? или хочешь переменную типа QString длинной в 10 символов? если второе, то ты не прав =) QString - это Qt класс для строковых данных и длину ему указывать не обязательно =) 3.4.и т.д - уже просто из "рекомендаций" объявляй все переменные в private или protected разделе. в public выноси get/set методы для каждой переменной. пусть это занимает какое-то время, зато код становится более... хм.. "правильным" =) что у тебя происходит с классом? он у тебя и наследуется от Ui::connect_adaptera, содержит у себя объект Ui::connect_adaptera *ui_m; - это как? .. причём содержит в public разделе, а значит к нему сможет обратиться кто угодно. опять же, из раздела "рекомендаций" - убери наследование, переведи переменную в private, и создай слоты/сигналы/методы для получения каких-то свойств из гуя. тем самым ты будешь предоставлять "наружу" не весь свой гуй, а только то, что от него надо, и это будет более безопасно - никакие другие объекты не смогут случайно сделать то, чего не надо. Название: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 09:54 Цитата: ieroglif если подключаемый путь пишется в <> - то ищется в PATH, если в "" - то в директории проекта Ну и зачем советуешь то, в чём сам не разбираешься?Название: Re: публичные переменные Отправлено: ieroglif от Май 11, 2011, 10:02 Цитата: ieroglif если подключаемый путь пишется в <> - то ищется в PATH, если в "" - то в директории проекта Ну и зачем советуешь то, в чём сам не разбираешься?я уж не знаю в чём я по твоему разбираюсь или не разбираюсь, но у меня работает именно так. так что с необоснованной критикой можешь идти далеко и на долго. Название: Re: публичные переменные Отправлено: Пантер от Май 11, 2011, 10:04 Не в PATH ищет, а -I. И "" ищет сначала в директории проекта, а потом тоже в -I.
Хотя, может, я тоже не разбираюсь. ;) Название: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 10:06 Цитата: ieroglif аааа.. ты всё необоснованно критикуешь Улыбающийся когда же уже начнёшь вместо критики и смуты вносить ясность? Ну что за народ ленивый и борзый пошел. Тебе сказали, что ты не прав. А ты не разобравшись начинаешь огрызаться.я уж не знаю в чём я по твоему разбираюсь или не разбираюсь, но у меня работает именно так. так что с необоснованной критикой можешь идти далеко и на долго. Название: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 10:09 Не в PATH ищет, а -I. И "" ищет сначала в директории проекта, а потом тоже в -I. Малость да ;)Хотя, может, я тоже не разбираюсь. ;) В случае с "" сначала ищется в каталоге, где находится сам файл, из которого делается include. Название: Re: публичные переменные Отправлено: Пантер от Май 11, 2011, 10:12 Не в PATH ищет, а -I. И "" ищет сначала в директории проекта, а потом тоже в -I. Малость да ;)Хотя, может, я тоже не разбираюсь. ;) В случае с "" сначала ищется в каталоге, где находится сам файл, из которого делается include. Название: Re: публичные переменные Отправлено: ieroglif от Май 11, 2011, 10:27 Цитата: ieroglif аааа.. ты всё необоснованно критикуешь Улыбающийся когда же уже начнёшь вместо критики и смуты вносить ясность? Ну что за народ ленивый и борзый пошел. Тебе сказали, что ты не прав. А ты не разобравшись начинаешь огрызаться.я уж не знаю в чём я по твоему разбираюсь или не разбираюсь, но у меня работает именно так. так что с необоснованной критикой можешь идти далеко и на долго. а по фтопу ясно всё :) Название: Re: публичные переменные Отправлено: GreatSnake от Май 11, 2011, 10:35 Цитата: ieroglif оффтоп: и не говори Улыбающийся во народ пошёл - говорят "ты не прав" и никак это не обосновывают - что делать то? Ну, сначала усомниться в свой правоте и перепроверить свои знания, т.к. всё знать и помнить невозможно.Коли и после этого всё ещё считаешь себя правым, то просто спрашиваешь. Ведь серое вещество - вещь довольно-таки ленивая - его тренировать нужно иногда :) Название: Re: публичные переменные Отправлено: ieroglif от Май 11, 2011, 10:44 Цитата: ieroglif оффтоп: и не говори Улыбающийся во народ пошёл - говорят "ты не прав" и никак это не обосновывают - что делать то? Ну, сначала усомниться в свой правоте и перепроверить свои знания, т.к. всё знать и помнить невозможно.Коли и после этого всё ещё считаешь себя правым, то просто спрашиваешь. Ведь серое вещество - вещь довольно-таки ленивая - его тренировать нужно иногда :) проверялка отвалится на перепроверках собственных сомнений навязанных окружающими :) так что если когда мне говорят "ты не прав" - я просто считаю что человеку не важно донести до меня "истину" - а в таком случае зачем мне этого человека слушать? слушать я буду того (и задумываться над его словами) человека, который скажет "смотри, у меня вот такие и такие знания, так что я считаю что ты не прав" - тут мне видно, что человек хочет не просто выпендриться, а что-то реально до меня донести. Название: Re: публичные переменные Отправлено: Пантер от Май 11, 2011, 10:51 Перенесу я темку в говорилку, все равно ничего полезного. Надеюсь, ТС не против.
Название: Re: публичные переменные Отправлено: Igors от Май 11, 2011, 11:17 Ну если уж "говорилка" :)
Неоднократно замечал что знания, техника (ах, да, те же STL, boost и.т.п.) охотно демонстрируются на простых вещах - там где, в общем-то, что угодно пройдет. А вот когда хоть что-то "выше травы" (т.е. когда этого нет в том справочнике в который многие превратили свои головы) - так куда что девается, прямо воды в рот набирают :) Я не против знаний, всем приходится учиться/гуглить, мне тоже. Но переоценивать "запомненное" не стоит |