ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

4.18. Размещение функций

Программа на C++ может состоять из файлов, содержащих описания типов, функций, переменных и констант. Чтобы имя можно было использовать в разных исходных файлах для ссылки на один и тот же объект, оно должно быть описано как внешнее [14].

Например:

extern double func(double);
extern instream cin;

Самый обычный способ обеспечить согласованность исходных файлов – это поместить такие описания в отдельные файлы, называемые заголовочными (или хэдер) файлами, а затем включить, то есть скопировать эти заголовочные файлы во все файлы, где нужны эти описания.

Например, если описание func хранится в заголовочном файле для функций sw.h, и вы хотите вызвать эту функцию и передать ей число 4, можно написать:

#include <sw.h>
//...
x = func (4);

Поскольку обычные заголовочные файлы включаются во многие исходные файлы, они не содержат описаний, которые не должны повторяться. Заголовочный файл обеспечивает интерфейс между отдельно компилируемыми частями программы.

В команде включения include имя файла, заключённое в угловые скобки, относится к файлу с этим именем в стандартном каталоге (например, /user), а на файлы, находящиеся в каких-либо других местах, ссылаются с помощью имен, заключенных в двойные кавычки.

Например:

#include "math1.h"
#include "/user/math2.h"

включит math1.h из текущего пользовательского каталога, а math2.h – из каталога /user.

Приведём пример программы, в котором строка определяется в одном файле, а её печать производится в другом.


Файл header.h определяет необходимые типы:

extern char* prog_name;
extern void f();

В файле prog.cpp находится главная программа:

#include "header.h"
char* prog_name = "Да здравствует СГГА!";
main()
{ f(); }

Функция f печатает строку:

#include <iostream.h>
#include "header.h"
void f()
{ cout << prog_name << "\n"; }

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011