Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 481
от 31.07.2006, 11:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 353, Экспертов: 42
В номере:Вопросов: 2, Ответов: 4


Вопрос № 50123: Здравствуйте! Такая проблема - имеется файл заголовков test01.h, в котором определена переменная "bool latlang;". Также имеется 2 класса форм Form1 и Form2 в файлах testform1.h и testform2.h. Обе формы используют переменную "latlang&qu...
Вопрос № 50229: Здравствуйте, уважаемые эксперты. Есть ли встроенные в Windows (2000 или XP) C/C++ компилятор и линкер. Если такие компилятор или линкер есть, то где они находятся. Мне нужно чтобы они были изначально встроены в Windows, сразу после устан...

Вопрос № 50.123
Здравствуйте! Такая проблема - имеется файл заголовков test01.h, в котором определена переменная "bool latlang;". Также имеется 2 класса форм Form1 и Form2 в файлах testform1.h и testform2.h. Обе формы используют переменную "latlang", но когда в одной форме меняется latlang в другой - нет. В чем причина? Заранее спасибо.

Приложение:

Отправлен: 25.07.2006, 12:13
Вопрос задал: Chinser (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Dr.Alex
Здравствуйте, Chinser!
Вообще то переменные не объявляются в H файлах. Тебе нужно объявить ее в любом срр файле, в в заголовочном файле написать extern bool latlang;
Этот заголовочный файл подключить к нужным срр файлам и все будет ОК. Она будет глобальная, одна и видна везде.
Только объявлять нужно не в классе.
Ответ отправил: Dr.Alex (статус: 10-ый класс)
Ответ отправлен: 25.07.2006, 12:28
Оценка за ответ: 5
Комментарий оценки:
спасибо

Отвечает: Шинтяков Дмитрий Васильевич / Ratson
Здравствуйте, Chinser!

Работая с С++, вы должны понимать, что такое файлы заголовков.

Это НЕ какие-то особые файлы, содержащие объявления переменных. Это просто текстовые файлы, содержимое которых напрямую вставляется в код программы перед её компиляцией.

В результате, "объявив" переменную в заголовочном файле, вы тем самым в действительности объявили переменную с таким именем во всех СРР файлах. Другими словами, вы получили несколько переменных с одинаковым именем, и каждый из классов видит свою. (Кстати, другой компилятор мог бы и ругнуться на это).

Как же справиься? Нужно действительно ОБЯВЛЯТЬ переменную, а не выделять под неё память. Попробуйте так: в заголовочнике написать

extern bool latlang; //объявляем переменную

А в _одном_ из СРР файлов написать

bool latlang;// а здесь выделяем под переменную память

Давно не писал на С++, надеюсь, не сильно наврал.
Ответ отправил: Шинтяков Дмитрий Васильевич / Ratson (статус: 1-ый класс)
Ответ отправлен: 25.07.2006, 13:03
Оценка за ответ: 5
Комментарий оценки:
спасибо


Вопрос № 50.229
Здравствуйте, уважаемые эксперты.
Есть ли встроенные в Windows (2000 или XP) C/C++ компилятор и линкер.
Если такие компилятор или линкер есть, то где они находятся.
Мне нужно чтобы они были изначально встроены в Windows, сразу после установки системы.
Я хочу. чтобы можно было набрать листанг программы в блокноте, затем запустить bat-файл и пролучить exe-файл.
Есть ли встроеные отладочные программы, тоже хорошо
Вопрос:
1) Есть ли компилятор и линкер, есть ли отладочные программы?
Если есть то,
2) Как правильно ими пользоваться из командной строки, а может для них есть встроеная програмная оболочка (хотя насчет этого я сомневаюсь)?
3) Какие стандартные библиотеки есть в Windows, где расположены и как их там подключить.
4) Есть ликниги или статьи об этих продуктах Microsoft, лучше написаные на русском языке?

P.S.
Такие пакеты как Visual Studio или Borland Bilder.
Просто на работе выпадает свободная минутка, чтобы попрограммировать.
А вот до конца лета мне предстоит переезжать с одного компа на другой, и просто надоело устанавливать пакет программ в начале недели и удалять его в конце.
Отправлен: 26.07.2006, 11:12
Вопрос задал: Zeitgeist (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: EPDSota
Здравствуйте, Zeitgeist!

Встроенных C нет, Компиляторов С тоже никаких...
Есть интерпретатор бейсика и яваскрипта (создаешь файл *.VBS, или *.JS в блокноте и запускаешь его как простой батник.)...

Можно с собой возить GCC - его можно ужать до 4Мб и ниже с сохранением работоспособности.
---------
Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Специалист)
Ответ отправлен: 26.07.2006, 11:30

Отвечает: Sling
Здравствуйте, Zeitgeist!
Вопросы 2, 3 и 4 автоматически отпадают, ибо ничего подобного в винду не встраивают.
PS: Кстати, если есть возможность, то стоит сделать образ винта с установленой системой и необходимыи прогами на на DVD c помощью соответствующего софта, может поможет сэкономить время при переходе на новую машину. "Установка" с такого диска занимает немного времени и гарантирует, что ничего не будет забыто.
---------
The fear of blood tends to create fear for the flesh
Ответ отправил: Sling (статус: 2-ой класс)
Ответ отправлен: 27.07.2006, 01:42


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное