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

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


В своем текущем программном коде вы можете считывать и записывать базовые классы непосредственно, например:

void Derived::write( opstream& out )

{

Base::write( out );

...

}

void *Derived::read( ipstream& in )

{

Base::read( in );

...

}

Этот метод продолжает работать, но не будет записывать в базовый класс никакого номера версии. Чтобы использовать все преимущества отслеживания версий, измените эти вызовы и используете

новые шаблоны функций, которые работают с версиями:

void Derived::Write( opstreams& out )

{

WriteBaseObject( (Base *)this, out );

...

}

void *Derived::Read( ipstream& in, uint32 ver )

{

ReadBaseObject( (Base *)this, out );

...

}

Важно привести указатель к базовому классу, иначе ваша программа может аварийно завершиться.



Содержание раздела