русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Создание собственных операторов вставки и извлечения


Дата добавления: 2013-12-23; просмотров: 1446; Нарушение авторских прав


Потоки

Системы ввода/вывода С и C++ имеют одну общую особенность: они обе оперируют потоками. То, что потоки в С и C++ подобны между собой, означает, что все, что известно о потоках в языке С, полностью применимо и в C++.

7.1.2 Предопределенные потоки C++

Как и в языке С, в C++ существует несколько предопределенных потоков, открывающихся автома­тически вместе с началом выполнения программы. Ими служат cin, cout, cerr и clog. Как извест­но, cin является потоком, ассоциированным со стандартным вводом, a cout представляет собой поток, ассоциированный со стандартным выводом. Потоки cerr и clog используются для вывода сообщений об ошибках. Разница между cerr и clog заключается в том, что, хотя они оба привяза­ны к стандартному выводу, cerr не буферизирован, поэтому все посланные в него данные выво­дятся немедленно. В противоположность этому clog буферизирован, так что данные выводятся только тогда, когда буфер оказывается полным.

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

7.2 Классы потоков C++

C++ обеспечивает поддержку системы ввода/вывода в заголовочном файле iostream.h. В этом файле определены две иерархии классов, поддерживающие операции ввода/вывода. Классом нижнего уровня является streambuf. Этот класс обеспечивает базовые операции ввода/вывода. До тех пор, пока не вводятся свои собственные классы ввода/вывода, непосредственно streambuf не использу­ется. Вторая иерархия классов начинается с класса ios. Он обеспечивает поддержку форматиро­ванного ввода/вывода. От него порождены классы istream, ostream и iostream. Эти классы ис­пользованы для создания потоков, способных осуществлять ввод, вывод и ввод/вывод соответственно. Как будет показано далее, от класса ios порождено много других классов, поддерживающих файлы на диске и форматирование в памяти.



В предыдущих главах создаваемые функции-члены классов осуществляли вывод и ввод данных класса с помощью вызова функций наподобие show_data() или get_data(). Хотя технически здесь нет ничего неправильного, язык C++ предоставляет гораздо более совершенный способ выполне­ния операций ввода/вывода классов с помощью перегрузки операторов << и >>.

На языке C++ оператор << называют оператором вставки (insertion), потому что он вставляет символы в поток. Аналогичным образом оператор >> называется оператором извлечения (extraction), поскольку он извлекает символы из потока. Операторы, перегружающие эти операторы вставки и извлечения, обычно называют инсертером (inserter) и экстрактором (extractor) соответственно. Базовые операторы вставки и извлечения перегружаются в файле iostream.h для того, чтобы выполнять потоковый ввод/вывод любых встроенных типов C++. В этом разделе объясняется, каким образом определить эти операторы по отношению к собственным классам.



<== предыдущая лекция | следующая лекция ==>
Перегрузка new u delete | Создание операторов вставки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.