Язык программирования C++. Вводный курс


Что такое переменная - часть 2


// файл module0.C

// определяет объект fileName

string fileName;

// ... присвоить fileName значение

 

// файл module1.C

// использует объект fileName

 

// увы, не компилируется:

// fileName не определен в module1.C

ifstream input_file( fileName );

С++ требует, чтобы объект был известен до первого обращения к нему. Это вызвано необходимостью гарантировать правильность использования объекта в соответствии с его типом. В нашем примере модуль module1.C

вызовет ошибку компиляции, поскольку переменная fileName не определена в нем. Чтобы избежать этой ошибки, мы должны сообщить компилятору об уже определенной переменной fileName. Это делается с помощью инструкции объявления

переменной:

// файл module1.C

// использует объект fileName

 

// fileName объявляется, то есть программа получает

// информацию об этом объекте без вторичного его определения

extern string fileName;

 

ifstream input_file( fileName )

Объявление переменной сообщает компилятору, что объект с данным именем, имеющий данный тип, определен где-то в программе. Память под переменную при ее объявлении не отводится. (Ключевое слово extern рассматривается в разделе 8.2.)

Программа может содержать сколько угодно объявлений одной и той же переменной, но определить ее можно только один раз. Такие объявления удобно помещать в заголовочные файлы, включая их в те модули, которые этого требуют. Так мы можем хранить информацию об объектах в одном месте и обеспечить удобство ее модификации в случае надобности. (Более подробно о заголовочных файлах мы поговорим в разделе 8.2.)




Начало  Назад  Вперед



Книжный магазин