Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Помогите найти ошибку |
Автор: Zarg 17.4.2007, 18:14 | ||
Изучаю C++ по книге Самоучитель С++ Г.Шилд застрял на классах, пиреписываю с книжки вот такой код
Компилирую во FreeBSD компилятором c++: #c++ prog.c в ответ получаю: prog.c: In member function `void stack::push(char)': prog.c:25: error: expected primary-expression before "char" prog.c:25: error: expected `;' before "char" prog.c:35: error: expected primary-expression before "int" prog.c:35: error: expected `;' before "int" prog.c:54: error: expected `}' at end of input Подскажите новичку, что не нравится компилятору? |
Автор: betal 19.4.2007, 21:59 | ||
![]() |
Автор: SerpentVV 20.4.2007, 10:43 | ||||
Не знаю, как компилятору, а мне не нравится, что нет ветки else ... Как ты в стек-то кладешь передаваемый символ? и не хватает закрывающей скобки |
Автор: pmy 21.4.2007, 02:59 | ||
|
Автор: dzin 21.4.2007, 09:46 |
Тоже только начал изучать по Шилду.Возник вопрос почти сразу :пишу код по книге(тема:глобальные переменные)инициализирую переменную перед инт майн , а компилятор ругается типа undeclared.Подскажите что не так делаю .Имхо полный лам![]() |
Автор: Anikmar 21.4.2007, 10:49 |
Запросто. Покажите как вы делаете и мы подскажем что не так! |
Автор: Armenia 21.4.2007, 10:51 | ||
вот пример. работает на сто. |
Автор: Anikmar 21.4.2007, 10:53 |
Только неправильно. ![]() У вас глобальная переменная перекрывается локальной. |
Автор: Armenia 21.4.2007, 11:00 | ||
значит я вопрос не понял. ![]() а что надо делать? |
Автор: Anikmar 21.4.2007, 11:11 |
Я сам не знаю что делать. Показать где ошибка в объявлении глобальной переменной. Жду кода от dzin. |
Автор: dzin 21.4.2007, 11:36 |
#include<iostream> int global; void func1(); void func2(); int main(void) { global=100; func1(); return 0; } void func1(void) { int temp; temp=global; func2(); printf("global is %d",global); } void func2(void) { int global; for(global=0;global<10;global++) putchar('.'); } |
Автор: JackYF 21.4.2007, 11:44 |
dzin, пользуйся тегами выделения кода [code=cpp],пожалуйста. Кнопка Код сверху... |
Автор: dzin 21.4.2007, 11:57 |
Сорри ,но в данный момент пишу с мобильного(мини опера) |
Автор: Armenia 21.4.2007, 12:00 |
dzin все работает (Visual Studio.NET) вот результат "..........global is 100" может с компилятором у вас проблемы ![]() |
Автор: dzin 21.4.2007, 12:05 | ||
Спасиб ,значит в компиляторе трабл.Будем скать ![]() |
Автор: Anikmar 21.4.2007, 12:58 | ||
А какой компилятор? И как конкретно ругается?
Это специально перекрытие сделано локальной - глобальной? |
Автор: dzin 21.4.2007, 13:20 | ||||
Платформа code::bloks(точно не помню GUI ...),да переменных две глоб и лок . P.S. Спасиб за ответы ![]() |
Автор: dizzy1984 21.4.2007, 13:56 | ||
конечно, перекрывается, а что в этом плохого, ведь к глобальной всегда можно обратиться через :: ? |
Автор: Xenon 21.4.2007, 14:13 |
Anikmar, а чего в этом страшного? В перекрытии? Я понимаю, что с идеологиской точки зрения так лучше не делать, но это должно работать ![]() |
Автор: Anikmar 21.4.2007, 17:21 | ||||
Да нет, конечно все правильно. Я имел в виду неправильно с точки зрения ответа на вопрос в этой теме. Был задан вопрос:
А приведенный пример никак не иллюстрировал работу с глобальной переменной. А перекрывать - тут ничего страшного нет, конечно, но лично я один раз минут 40 искал у себя ошибку, когда глобальную переменную перекрыл. ![]() |