| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Калькулятор из книги Макса Шлее |
| Автор: Greiv 22.9.2010, 23:10 | ||||||||||
| Всем привет. В общем проблема в следующем. Просто вводя код калькулятора из книги выше упомянутого автора с небольшими своими изменениями(не чего серьёзного), код запускается но не считает и вообще работает как то коряво в общем, кнопок не слушает вообще, замучился разбирать косяк найти не могу может знатоки помогут вот коды исходных файлов моих. main.cpp
calculatorform.h
calculatorform.cpp
И ещё пожалуйста объясните 2 момента для чего здесь стоит звёздочка?
И для чего нужно вот это
|
| Автор: RedDigger 24.9.2010, 23:51 | ||||||||||||||||
Проблема у тебя в невнимательности... В функции void slotButtonClicked(); в самом конце где вносится первое значения для подсчета - значение вносится только тогда когда ты нажимаешь на какойлибо знак арифметического действия. Но при это знак не сохраняешь.. в результате у тебя к подсчету приходит только два числа без знака на что та не знает что делать.. для решения следует применить следующее
Ответы на вопросы тобою заданные - 1.
Эта "звездочка" или "спецификатор памяти" если точнее требуется для того чтобы функция возвращала указатель на объект класса QPushButton в случае если не указывать "звездочку" то объект получается статическим. Память под него выделяется при старте программы а не при вызове дерективы new. Создание динамического объекта
Их можно использовать как массивы. 2.
В данном случае ты создаешь статический объект класса calculatorform. Нужно это чтобы твой калькулятор работал.. если данной строки не будет то никогда не отработает конструктор а следовательно все что будет в блоке calculatorform::calculatorform() - можно забыть... в общем у тебя ничего не будет.. PS RTFM - http://sbp-program.ru/SBP-C-Pointer-Example.htm (в примере терминология страдает но основные понятия открыты великолепно.) |
| Автор: Greiv 25.9.2010, 00:38 | ||
Да спасибо большое за такой исчерпывающий ответ, но так как я только начинаю программировать то естественно я работаю с книгой, и вот в чём дело в книге последний обзац этого кода где у меня ошибка выглядит именно так
без этого стека который вы мне указали. Брутальная опечатка, видимо редакция одна из первых. |
| Автор: RedDigger 25.9.2010, 00:43 | ||||
Возможно опечатка... Возможно народ специально не поставил данную строку туда, чтоб читатель сам попытался ответить.. В любом случае мы этого думаю не узнаем. Рад что смог помочь. Обращайся если что |