Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка - многократное включение 
V
    Опции темы
east
Дата 7.5.2009, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.5.2006

Репутация: 1
Всего: 1



Всем привет!
Вопрос детский, но уже достал меня.
Есть проект (диалоговое окно). Мне нужно обьявить глобальную переменную, чтобы была видна в нескольких классах. Классы, естественно, по разным файлам. Переменную обьявляю в StdAfx.h. Компилятор ругается о многократном обьявлении переменной. Пробовал писать вот такое:
Код

#ifndef FILTER
bool g_Filtering;
#define FILTER
#endif

ничего не помогает. 
Помогите, пожалуйста, кто сталкивался с таким.
PM MAIL   Вверх
Earnest
Дата 7.5.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Вопрос действительно детский.
У переменной должно быть ровно одно определение (definition), и сколько угодно объявлений (declaration). 
bool g_Filtering - это definition. Каждая вставка h-файла порождает свой эксземпляр. А stdafx.h вставляется ВО ВСЕ ФАЙЛЫ. Еще раз, только одно определение (в любом cpp-файле) и объявление в stdafx.р (т.е. extern bool g_Filtering).
Но есть еще 2 замечания. Глупо использовать для таких вещей stdafx.h. Даже если у тебя сейчас проект, все файлы которого используют эту переменную, время детских проектов проходит, а плохие привычки имеют свойство закрепляться. И и наконец, глобальные переменные - это самый простой, но и самый плохой способ обеспечить доступ к общим данным. См. чуть раньше насчет дестких проектов.


--------------------
...
PM   Вверх
east
Дата 7.5.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 22.5.2006

Репутация: 1
Всего: 1



Спасибо. Сам не люблю использовать глобальные переменные, но на данный случай лучшего пока не придумал.
PM MAIL   Вверх
Earnest
Дата 7.5.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Ну хоть в stdafx.h хоть ее не засовывай!


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.