Язык программирования C++

Глобальные переменные


Язык Си++ предоставляет возможность определения глобальной переменной. Если переменная определена вне функции, она создается в самом начале выполнения программы (еще до начала выполнения main). Эта переменная доступна во всех функциях того файла, где она определена. Аналогично прототипу функции, имя глобальной переменной можно объявить в других файлах и тем самым предоставить возможность обращаться к ней и в других файлах:

// файл main.cpp #include "RandomGenerator.h" // определение глобальной переменной RandomGenerator rgen; main() { rgen.Init(1000); } void fun1(void) { unsigned long x = rgen.GetNumber(); . . . } // файл class.cpp

#include "RandomGenerator.h" // объявление глобальной переменной, // внешней по отношению к данному файлу extern RandomGenerator rgen; Class1::Class1() { . . . } void fun2() { unsigned long x = rgen.GetNumber(); . . . }

Объявление внешней переменной можно поместить в файл-заголовок. Тогда не нужно будет повторять объявление переменной с описателем extern в каждом файле, который ее использует.

Модификацией определения глобальной переменной является добавление описателя static. Для глобальной переменной описатель static означает то, что эта переменная доступна только в одном файле – в том, в котором она определена. (Правда, в данном примере такая модификация недопустима – нам-то как раз нужно, чтобы к глобальной переменной rgen можно было обращаться из разных файлов.)



Содержание раздела