Технология программирования. Базовые конструкции C/C++. Липачев Е.К. - 120 стр.

UptoLike

Составители: 

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