ВУЗ:
Составители:
Рубрика:
120
Что включать в заголовочный файл
Во всех объявлениях типы одних и тех функций, классов и т. д. должны
быть согласованы. Обычно, для достижения согласованности объявлений в
различных единицах трансляции, используются заголовочные файлы (h–
файлы), которые включаются в файлы проекта с помощью директивы
препроцессора #include. В книге Стауструп Б. Язык программирования
C++ приведено ―негласное практическое правило‖, указывающее какие
инструкции следует включать в заголовочные файлы. Процитируем это
правило. Негласное практическое правило гласит, что заголовочный файл
может содержать: именованные пространства имен (namespace N{/*
*/}), определения типов (struct Point {int x, y;};),
объявления шаблонов (template<class T> class Z;), объявления
функций (extern int strlen(const char*);), определения
встроенных функций (inline char get(char* p) {return
*p++;}), объявления данных (extern int a;), определения констант
(const float pi=3.1415;), перечисления (enum Light {red,
yellow, green};), объявления имен (class Matrix;), директивы
включения (#include <algorithm>), макроопределения (#define
VERSION 12), директивы условной компиляции (#ifdef
__cplusplus), комментарии (/* */).
Это практическое правило не является требованием языка. С другой стороны,
заголовочный файл никогда не должен содержать: определения обычных
функций (char get(char* p){return *p++;}), определения данных
(int a;), определения агрегатов (short tbl[]={1,2,3};),
неименованные пространства имен (namespace {/* */}),
экспортируемые определения шаблонов (export template<class T>
f(T t){/* .*/}).
Области действия идентификаторов
Область действия идентификатора (диапазон доступа, область
видимости) определяет, в каких частях программы этот идентификатор
является доступным. Так, переменную, определенную в функции, можно
использовать только в этой функции. Если же переменная определена до
определений функций (в том числе и до функции main()), то еѐ можно
использовать во всех функциях данного файла.
Различают следующие области действия имен: блоки (т.е. группа
операторов, ограниченная фигурными скобками), функции, классы, файлы,
пространства имен, программа.
Переменная, объявленная в блоке, известна только в пределах этого
блока. Такую переменную обычно называют локальной переменной.
Переменную, объявленную в начале программы, прежде определений
Что включать в заголовочный файл
Во всех объявлениях типы одних и тех функций, классов и т. д. должны
быть согласованы. Обычно, для достижения согласованности объявлений в
различных единицах трансляции, используются заголовочные файлы (h–
файлы), которые включаются в файлы проекта с помощью директивы
препроцессора #include. В книге Стауструп Б. Язык программирования
C++ приведено ―негласное практическое правило‖, указывающее какие
инструкции следует включать в заголовочные файлы. Процитируем это
правило. Негласное практическое правило гласит, что заголовочный файл
может содержать: именованные пространства имен (namespace N{/*
*/}), определения типов (struct Point {int x, y;};),
объявления шаблонов (template class Z;), объявления
функций (extern int strlen(const char*);), определения
встроенных функций (inline char get(char* p) {return
*p++;}), объявления данных (extern int a;), определения констант
(const float pi=3.1415;), перечисления (enum Light {red,
yellow, green};), объявления имен (class Matrix;), директивы
включения (#include ), макроопределения (#define
VERSION 12), директивы условной компиляции (#ifdef
__cplusplus), комментарии (/* */).
Это практическое правило не является требованием языка. С другой стороны,
заголовочный файл никогда не должен содержать: определения обычных
функций (char get(char* p){return *p++;}), определения данных
(int a;), определения агрегатов (short tbl[]={1,2,3};),
неименованные пространства имен (namespace {/* */}),
экспортируемые определения шаблонов (export template
f(T t){/* .*/}).
Области действия идентификаторов
Область действия идентификатора (диапазон доступа, область
видимости) определяет, в каких частях программы этот идентификатор
является доступным. Так, переменную, определенную в функции, можно
использовать только в этой функции. Если же переменная определена до
определений функций (в том числе и до функции main()), то еѐ можно
использовать во всех функциях данного файла.
Различают следующие области действия имен: блоки (т.е. группа
операторов, ограниченная фигурными скобками), функции, классы, файлы,
пространства имен, программа.
Переменная, объявленная в блоке, известна только в пределах этого
блока. Такую переменную обычно называют локальной переменной.
Переменную, объявленную в начале программы, прежде определений
120
Страницы
- « первая
- ‹ предыдущая
- …
- 118
- 119
- 120
- 121
- 122
- …
- следующая ›
- последняя »
