Основные потоковые классы и объекты. Заголовочные файлы

   
На этом шаге мы перечислим необходимые заголовочные файлы и кратко рассмотрим их содержимое.

   
Определения потоковых классов распределены по нескольким заголовочным файлам.

  • <iosfwd>. Содержит опережающие объявления потоковых классов. Этот заголовочный файл необходим из-за того, что простые
    опережающие объявления вида class ostream теперь не разрешены.
  • <streambuf>. Содержит определения базового потокового класса с буферизацией (basic_streambuf<>).
  • <istream>. Содержит определения классов, поддерживающих только ввод (basic_ istream<>), а также классов с
    поддержкой ввода и вывода (basic_iostream<>).
  • <ostream>. Содержит определения потокового класса вывода (basic_ostream<>).
  • <iostream>. Содержит объявления глобальных потоковых объектов (таких, как cin и cout).

   Замечание.
На первый взгляд кажется, что объявлять классы с поддержкой ввода и вывода в заголовке <istream> нелогично. Но так как в начале
работы каждой единицы трансляции, включающей <iostream>, тратится время на инициализацию, объявления для ввода и вывода были
выделены в файл <istream>.

   
Многие из этих заголовочных файлов предназначены для внутренней организации стандартной библиотеки C++. Прикладному программисту
обычно достаточно включить файл <iosfwd> в объявление потоковых классов и <istream> или <ostream> при
непосредственном использовании функций ввода или вывода. Заголовок <iostream> следует включать только при использовании
стандартных потоковых объектов. В некоторых реализациях в начале работы каждой единицы трансляции, включающей этот заголовок, выполняется
фрагмент кода инициализации. Само по себе выполнение этого кода обходится недорого, но при этом приходится загружать соответствующие
страницы исполняемого файла, а эта операция может быть довольно дорогостоящей. Как правило, в программу следует включать только заголовки,
содержащие абсолютно необходимые объявления. В частности, в заголовочные файлы должен включаться только заголовок <iosfwd>,
а соответствующие файлы реализации включают заголовок с полным определением.

   
Специальные средства работы с потоками данных (параметризованные манипуляторы, файловые и строковые потоки данных) определяются в
дополни тельных заголовочных файлах (<iomanip>, <fstream>, <sstream> и <strstream>).
Дополнительная информация об этих заголовках приводится в шагах, посвященных этим специальным средствам.

   
На следующем шаге мы рассмотрим стандартные операторы << и >>.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий