Полезно за вас: Речник | Игри | Новини | Фирми | Рецепти | Обяви
Начало на реферати

ПОТОЦИ2


Информационни технологии | 2009-12-04 | 110 сваляния

9. ПОТОЦИ

Въведение

В програмирането много важно място заемат операциите, свързани с обмен на данни. Към тази група принадлежат входно-изходните операции, файловите операции, прехвърляне на данни между различни области от паметта и др. Практически няма програма, в която да не се налага използуване на такива операции.

В езика С операциите, свързани с обмен на данни, не са част от ядрото на езика, а се реализират чрез множество библиотечни функции (printf, scanf, gets, getchar, fprintf, putchar и много други). Този подход е крачка напред в сравнение с използуването на специализирани оператори (както e в някои по-стари езици), тъй като дава възможност на програмиста да създава нови функции, съобразно конкретните нужди и по този начин да разширява възможностите на езика.

В езика C++ възможността за използуване на споменатите функции е запазена, но успоредно с това операциите за обмен на данни имат и обектно-ориентирана реализация, базирана върху един обобщен модел на тези операции, който схематично е представен на фиг. 9.1.

Потоците (streams) са обекти, които поддържат обмена на данни между източниците и приемниците. Всеки поток има своя вътрешна структура и реализира специфични действия в зависимост от особеностите на конкретните източници и приемници на данни. Обектно-ориентираната технология позволява тези специфични особености на различните потоци да бъдат скрити за крайния потребител. В резултат на това, използувайки потоците, програмистът работи с обобщени оператори, без да се интересува от детайлите, свързани с тяхното действие. Ще поясним това с един пример: Нека stream е изходен поток (поток, който е свързан с определен приемник на данни), а х и у са променливи на някои от основните типове (int, float, double и пр.). Тогава, чрез конструкцията stream<<х<<у;, променливите х и у ще бъдат "вмъкнати" в потока stream. Това ще доведе до прехвърляне на техните стойности в приемника на данни, с който е свързан потокът. Този приемник може да бъде екранът (с екрана е свързан потокът cout), определен файл, буфер в паметта и др. Потокът stream автоматично разпознава типовете на данните и реализира всички необходими действия, чрез които се осъществява прехвърлянето на данните в приемника. Операторът << може да бъде предефиниран така, че да се прилага не само върху основните типове, но и върху типове (класове), дефинирани от потребителя. Същото се отнася и за оператора >>, чрез който се реализират входни операции.

В тази глава ще бъдат разгледани основните характеристики на потоците в C++ и чрез няколко примера ще бъде, илюстрирано тяхното използуване. Основа на изложението в главата е библиотеката от класове iostream на BORLAND C++, чрез която се реализират потоците.

9.1. ОРГАНИЗАЦИЯ НА БИБЛИОТЕКАТА IOSTREAM.

Класовете, формиращи библиотеката iostream са подредени в йерархия, състояща се от два паралелни клона. В първия клон са класовете, които са производни на класа streambuf, a във втория клон са класовете, които са производни на класа ios.

Класът streambuf притежава методи за буфeриране и обработка на неформатирани данни. Този клас е базов за два други класа с имена filebuf и strstreambuf (фиг.9.2), които наследяват методите на streambuf и се използуват

ПОТОЦИ2

Добави своя коментар:



Тагове от реферата: , , , ,


Подобни материали


Дефиниране и използване на анонимни функции Информационни технологии | 2010-08-06 | 40 прочитания
Въведение в MS Access 2003 Информационни технологии | 2010-08-06 | 389 прочитания
Администриране на интернет. Имена на домейни Информационни технологии | 2010-08-06 | 78 прочитания
ОСНОВНИ ФУНКЦИИ НА УЧРЕЖДЕНСКАТА ИНФОРМАЦИОННА СИСТЕМА Информационни технологии | 2010-08-06 | 42 прочитания
OSI модели Информационни технологии | 2010-08-06 | 56 прочитания
История на вируси и антивирусни програми Информационни технологии | 2010-08-06 | 113 прочитания
Стандартната библиотека с шаблони на С++ Информационни технологии | 2010-08-06 | 57 прочитания
Топология тип звезда Информационни технологии | 2010-08-06 | 162 прочитания
Синтез на КЛС с типове елементи и възли програмируеми лог. матрици(ПЛМ) Информационни технологии | 2010-08-06 | 91 прочитания
Системни примитиви за процеси fork, exit, wait, exec, getpid, getppid Информационни технологии | 2010-08-06 | 108 прочитания