Четвертый BORLAND С++ и его окружение



         

Создание потоковых объектов - часть 2


DECLARE_STREAMABLE создает также для вашего класса два экстрактора, так что вы можете записывать объекты для считывания их из

постоянных потоков. Для класса приведенного выше примера класса

Sample эти функции имеют следующие прототипы:

opstream& operator << { opstream&, const Sample& };

opstream& operator << { opstream&, const Sample* };

opstream& operator >> { opstream&, Sample& };

opstream& operator >> { opstream&, Sample*& };

Первый инсертер записывает объекты типа Sample. Второй записывает объекты, указываемые указателем на Sample. Это позволяет

вам использовать полиморфизм и полностью управлять потоками, то

есть полностью записывать объекты типов, производных от Sample.

Затем эти объекты считываются обратно с помощью экстрактора, который будет считывать их фактический тип. (Экстрактор выполняет

действие, обратное инсертеру.)

Наконец, DECLARE_STREAMABLE создает на базе класса TStreamer

вложенный класс с именем Streamer, который определяет ядро потокового кода.




Содержание  Назад  Вперед