Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Общая переменная


Автор: Robix 5.9.2010, 19:19
Здравствуйте.
Имеются файлы order.cpp и product.cpp + bridge.h  

Содеpжание файла bridge.h
bool bridge = true; 

В order.cpp я включаю #include "bridge.h"
а переменная bridge после вызова определенной функции устанавливается в false
После этой функции создается новое окно и задействуется код из файла product.cpp
В product.cpp я тоже включаю #include "bridge.h"
И тут после вызова деструктора переменная bridge  устанавливается в true

Компилятор выдает ошибку. Насколько я понял, говорит о том, что переменная bridge много используется. Но как тогда мне создать общую переменную для двух файлов .cpp ?







Автор: alexvs11 5.9.2010, 19:52
в bridge.cpp ( или любом другом .cpp, например stdafx.cpp )

bool bridge = false;

в bridge.h

Код

#ifndef BRIDGE_H
#define BRIDGE_H
extern bool bridge;
#endif

Автор: Леопольд 5.9.2010, 20:02
Robix, нарушено ODR (one definition rule - правило одного определения). Т.е. переменная с внешним связыванием (не const и не static) может быть много раз объявлена, но только один раз определена.

Добавлено через 3 минуты и 41 секунду
Цитата(alexvs11 @  5.9.2010,  19:52 Найти цитируемый пост)
stdafx.cpp 
Здесь вообще не надо ничего писать. Эта фиговина нужна для предкомпиляции заголовочных файлов. Если вносить туда постоянные изменеия, то всё будет перекомпилироваться заного. Можно вообще глюк студии поймать, например, проект перестанет компилироваться. Эта фишка совсем не стандартная.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)