| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > ошибка - многократное включение |
| Автор: east 7.5.2009, 10:58 | ||
| Всем привет! Вопрос детский, но уже достал меня. Есть проект (диалоговое окно). Мне нужно обьявить глобальную переменную, чтобы была видна в нескольких классах. Классы, естественно, по разным файлам. Переменную обьявляю в StdAfx.h. Компилятор ругается о многократном обьявлении переменной. Пробовал писать вот такое:
ничего не помогает. Помогите, пожалуйста, кто сталкивался с таким. |
| Автор: Earnest 7.5.2009, 17:25 |
| Вопрос действительно детский. У переменной должно быть ровно одно определение (definition), и сколько угодно объявлений (declaration). bool g_Filtering - это definition. Каждая вставка h-файла порождает свой эксземпляр. А stdafx.h вставляется ВО ВСЕ ФАЙЛЫ. Еще раз, только одно определение (в любом cpp-файле) и объявление в stdafx.р (т.е. extern bool g_Filtering). Но есть еще 2 замечания. Глупо использовать для таких вещей stdafx.h. Даже если у тебя сейчас проект, все файлы которого используют эту переменную, время детских проектов проходит, а плохие привычки имеют свойство закрепляться. И и наконец, глобальные переменные - это самый простой, но и самый плохой способ обеспечить доступ к общим данным. См. чуть раньше насчет дестких проектов. |
| Автор: east 7.5.2009, 20:00 |
| Спасибо. Сам не люблю использовать глобальные переменные, но на данный случай лучшего пока не придумал. |
| Автор: Earnest 7.5.2009, 20:23 |
| Ну хоть в stdafx.h хоть ее не засовывай! |