![]() |
|
|
![]()
|
|
| east |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.5.2006 Репутация: 1 Всего: 1 |
Всем привет!
Вопрос детский, но уже достал меня. Есть проект (диалоговое окно). Мне нужно обьявить глобальную переменную, чтобы была видна в нескольких классах. Классы, естественно, по разным файлам. Переменную обьявляю в StdAfx.h. Компилятор ругается о многократном обьявлении переменной. Пробовал писать вот такое:
ничего не помогает. Помогите, пожалуйста, кто сталкивался с таким. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Вопрос действительно детский.
У переменной должно быть ровно одно определение (definition), и сколько угодно объявлений (declaration). bool g_Filtering - это definition. Каждая вставка h-файла порождает свой эксземпляр. А stdafx.h вставляется ВО ВСЕ ФАЙЛЫ. Еще раз, только одно определение (в любом cpp-файле) и объявление в stdafx.р (т.е. extern bool g_Filtering). Но есть еще 2 замечания. Глупо использовать для таких вещей stdafx.h. Даже если у тебя сейчас проект, все файлы которого используют эту переменную, время детских проектов проходит, а плохие привычки имеют свойство закрепляться. И и наконец, глобальные переменные - это самый простой, но и самый плохой способ обеспечить доступ к общим данным. См. чуть раньше насчет дестких проектов. -------------------- ... |
|||
|
||||
| east |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.5.2006 Репутация: 1 Всего: 1 |
Спасибо. Сам не люблю использовать глобальные переменные, но на данный случай лучшего пока не придумал.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ну хоть в stdafx.h хоть ее не засовывай!
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |