- •ВВЕДЕНИЕ
- •КЛАССЫ
- •Описание объектов
- •Указатель this
- •Конструкторы
- •Конструктор копирования
- •Статические элементы класса
- •Статические методы
- •Дружественные функции и классы
- •Дружественные функции
- •Дружественный класс
- •Деструкторы
- •Перегрузка унарных операций
- •Перегрузка бинарных операций
- •Перегрузка операции присваивания
- •Перегрузка операции приведения типа
- •НАСЛЕДОВАНИЕ
- •Ключи доступа
- •Простое наследование
- •Правила наследования методов
- •Абстрактные классы
- •ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ
- •Синтаксис исключений
- •Перехват исключений
- •Список исключений
- •Иерархии исключений
- •СТАНДАРТНАЯ БИБЛИОТЕКА
- •Форматирование данных
- •Флаги и форматирующие методы
- •Манипуляторы
- •Методы обмена с потоком
- •Файловые потоки
- •СТРОКИ
- •Операции
- •Функции
- •Преобразование строк
- •Поиск подстрок
- •Сравнение частей строк
- •Получение характеристик строк
- •КОНТЕЙНЕРНЫЕ КЛАССЫ
- •Последовательные контейнеры
- •Векторы
- •Двусторонние очереди
- •Списки
- •Ассоциативные контейнеры
- •Словари
- •Словари с дубликатами (multimap)
- •ПРИЛОЖЕНИЕ 1. ШАБЛОНЫ ФУНКЦИЙ
- •ПРИЛОЖЕНИЕ 2. ШАБЛОНЫ КЛАССОВ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
СТАНДАРТНАЯ БИБЛИОТЕКА
Стандартную библиотеку С++ можно разделить на две части. К первой части относятся функции, макросы, типы и константы, унаследованные из библиотеки С; ко второй – классы и другие средства С++.
Классы стандартной библиотеки можно разделить на следующие группы. Потоковые классы – предназначены для управления потоками данных
между оперативной памятью и внешними устройствами, также в пределах оперативной памяти.
Строковый класс – предназначен для работы с символьными переменны-
ми.
Контейнерные классы – реализуют структуры для хранения данных (списки, векторы, множества).
Итераторы – предназначены для унифицированного доступа к элементам классов.
Математические классы – поддерживают обработку массивов с плавающей точкой и работу с комплексными числами.
Диагностические классы – обеспечивают динамическую идентификацию типов и объектно-ориентированную обработку ошибок.
Остальные классы обеспечивают динамическое распределение памяти и ряд других функций.
Для использования средств стандартной библиотеки в программу следует включить соответствующие заголовочные файлы.
ПОТОКОВЫЕ КЛАССЫ
Поток – это абстрактное понятие, относящееся к любому переносу данных от источника к приемнику.
Чтение данных из потока называется извлечением, вывод в поток – помещением или включением. Поток определяется как последовательность байтов
ине зависит от конкретного устройства, с которым производится обмен. Обмен с потоком для увеличения скорости передачи данных производится, как правило, через специальную область данных – буфер.
По направлению обмена потоки можно разделить на входные(данные вводятся в память) и двунаправленные (допускающие как извлечение, так и включение).
По виду устройств, с которыми работает поток, можно выделить стандартные, файловые и строковые потоки.
Стандартные потоки предназначены для передачи данных от клавиатуры
ина экран.
Файловые потоки – для обмена информацией с файлами на внешних устройствах.
Строковые потоки – для работы с массивами символов.
33
Для поддержки потоков библиотекаС++ содержит иерархию классов, построенную на основе двух базовых классов – ios и streambuf. Класс ios содержит общие для ввода и вывода поля и методы, класс streambuf обеспечивает буферизацию потоков и их взаимодействие с физическими устройствами.
Далее перечисляются часто используемые классы потоков: ios – базовый класс потоков;
istream – класс входных потоков; ostream – класс выходных потоков;
iostream – класс двунаправленных потоков; istringstream – класс входных строковых потоков; ostringstream – класс выходных строковых потоков; stringstream – класс двунаправленных потоков; ifstream – класс входных файловых потоков; ofstream – класс выходных файловых потоков; fstream – класс двунаправленных файловых потоков. Описание классов находится в заголовочных файлах: <ios> – базовый класс ввода/вывода;
<iosfwd> – предварительные объявления средств ввода/вывода; <istream> – шаблон потока ввода;
<ostream> – шаблон потока вывода;
<iostream> – стандартные объекты и операции с потоками ввода/вывода; <fstream> – потоки ввода/вывода в файлы;
<sstream> – потоки ввода/вывода в строки; <streambuf> – буферизация потоков ввода/вывода; <iomanip>–манипуляторы (см. далее).
Стандартные потоки
Заголовочный файл <iostream> помимо описания классов для - вво да/вывода содержит четыре предопределенных объекта (табл.1).
|
|
Таблица 2 |
|
Предопределенные объекты |
|
|
|
|
Объ- |
Класс |
Описание |
ект |
|
|
cin |
istream |
Связывается с клавиатурой(стандартным буфе- |
|
|
ризованным вводом) |
cout |
ostream |
Связывается с экраном (стандартным буферизо- |
|
|
ванным выводом) |
cerr |
ostream |
Связывается с экраном(стандартным не буфе- |
|
|
ризованным выводом), куда направляются со- |
|
|
общения об ошибках |
clog |
ostream |
Связывается с экраном (стандартным буферизо- |
|
|
ванным выводом), куда направляются сообще- |
34