Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
fom4ik
49 / 7 / 1
Регистрация: 07.11.2010
Сообщений: 52
#1

глобальные переменные - C++

09.03.2012, 18:03. Просмотров 1605. Ответов 5
Метки нет (Все метки)

Пробовал объявить глобальные переменные следующим образом:

в заголовочном файле head.h
C++
1
2
3
4
#ifndef DF_H
#define DF_H
//объявления переменнын
#endif // DF_H
В файлах functions.cpp и main.cpp я написал строчку #include "head.h". Компилятор мне выдал ошибку, что переменные объявлены 2 раза. Разве такое объявление переменных как у меня не дожно позволять переменным объявиться несколько раз. Компилятор gcc.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2012, 18:03     глобальные переменные
Посмотрите здесь:

Глобальные переменные - C++
Как в C++ завести глобальную (общую для функции и самой программы) переменную?

Глобальные переменные - C++
Я хочу использовать глобальную переменную, определённую в main, в своих классах. Листинг)) globals.h #ifndef GLOBASL_H #define...

Глобальные переменные - C++
Здравствуйте . Разбираю пример с книги на использование глобальных переменных . Там был такой пример: #include "stdafx.h" #include...

Глобальные переменные - C++
Здравствуйте! Возникла видимо классическая проблема, но перечитав кучу сайтов так ее и не решил. Пишу в VS2005, имеются 2 срр файла...

Глобальные переменные - C++
Доброго времени суток всем. У меня следующая проблема: объявляю глобально переменную типа структуры dealer* root;. Далее в коде...

Глобальные переменные - C++
Я правильно понимаю: "в c++ использовать глобальные переменные не безопасно, т. к. др. программы могут случайно поменять значение этих...

Динамические глобальные переменные - C++
При изучении С++ возникла проблема - потребовалось изменить два объекта одной функцией. Конечно, можно создать новый объект, являющийся...

глобальные переменные в модуле - C++
Нужно сохранить пару массивов и несколько переменных, но так чтобы их в основной программе видно не было, хочу сделать статик внутри...

Глобальные переменные и константы - C++
Есть проект, большой, с кучей классов и т.д. нужны глобальные переменные, и константы, доступ к которым должны иметь многие классы. Но они...

Глобальные переменные (ошибка) - C++
Разбирался в глобальных переменных, программа выдает ошибку... Что не так? #include <iostream> using namespace std; ...

Убрать глобальные переменные - C++
Помогите пожалуйста убрать глобальные переменные, прога работает на 100% #include <cstring> #include <string> #include <fstream> ...

Глобальные static переменные - C++
main.h class Test { public: void test(); }; static int x; test.cpp


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
09.03.2012, 18:14     глобальные переменные #2
functions.cpp и main.cpp компилируются в отдельные файлы. Константа-сторож не поможет, т.к. действует в одном исходном файле. В итоге переменные законно объявляются там и там.
Байт
Эксперт C
15826 / 10153 / 1521
Регистрация: 24.12.2010
Сообщений: 19,135
09.03.2012, 18:16     глобальные переменные #3
fom4ik, Эта конструкция блокирует только повторное подключение хедера в одном исходнике. Следовательно, head.h подключается и в main.cpp и function.cpp
Мои советы.
1. Поймите, что препроцессор осуществляет только текстовую обработку каждого исходного файла, совершенно независимо от других.
2, Найдите в одном из недавних моих постов (не глубже недели) предложения по решению этого конфликта.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
09.03.2012, 19:15     глобальные переменные #4
fom4ik, объявляйте переменные в functions.cpp, например. А в main.cpp объявите их используя ключевое слово extern
fom4ik
49 / 7 / 1
Регистрация: 07.11.2010
Сообщений: 52
09.03.2012, 19:19  [ТС]     глобальные переменные #5
Байт, сейчас поищу.

go, я так и сделал
Байт
Эксперт C
15826 / 10153 / 1521
Регистрация: 24.12.2010
Сообщений: 19,135
09.03.2012, 19:38     глобальные переменные #6
fom4ik, Вот нашел сам.
Ошибка повторения имен переменных при использовании глобальной переменной
Причем это был ответ на твой же топик
Yandex
Объявления
09.03.2012, 19:38     глобальные переменные
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru