Глобальные переменные и область видимости — C++C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Глобальные переменные и область видимости — C++

Сообщение Гость »


У меня возникла небольшая проблема с работой глобальной переменной. Я использую Visual Studio 2008 и стандартный C++.

У меня есть два проекта: один — статическая библиотека, а второй — тестовая программа, использующая эту библиотеку. У меня есть глобальная переменная в global.h, например

#ifndef GLOBAL_H #define ГЛОБАЛЬНЫЙ_H #include extern std::string globalWord; #endif // ГЛОБАЛЬНЫЙ_H! У меня есть файл global.cpp, в котором я инициализирую эту переменную. Эта переменная используется внутри моего проекта библиотеки. Я задаю значение этой переменной из тестового проекта, но это значение не отражается в проекте библиотеки.

Я выполнил отладку, и в тестовом проекте отображается новое значение, но когда элемент управления достигает проекта библиотеки, значение этой переменной отображается пустым. Значит, область действия этой глобальной переменной ограничена только проектом, которому она принадлежит?

Или есть лучший способ сделать это? Я не хочу изменять параметры функции или конструктора в своей библиотеке, чтобы передать это значение.

Любая помощь будет полезна.

Изменить:

Вот как эта переменная объявляется в global.cpp

#include #include "../global.h" std::string globalWord = ""; Вот как я использовал это в своей библиотеке

#include "../global.h" строка текста = globalWord; Спасибо
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»