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

       

Множественное наследование и поддержка виртуальной базы


Потоковый код предусматривает теперь 4 шаблона функций, которые поддерживают виртуальные базовые классы и множественное

наследование.

В любом классе с прямой виртуальной базов следует использовать новые шаблоны функций ReadVirtualBase и WriteVirtualBase:

void Derived:Write( opstream& out )

{

WriteVirtualBase( (VirtualBase *)this, out);

...

}

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

{

ReadVirtualBase( (VirtualBase *)this, in );

...

}



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

класс отвечает только за свои непосредственные базы.

Объектные потоки поддерживают теперь множественное наследование. Чтобы читать и записывать множественные базы, используйте

новые шаблоны функций WriteBaseObject и ReadBaseObject:

void Derived::Write( opstream& out )

{

WriteBaseObject( (Base1 *)this, out );

WriteBaseObject( (Base2 *)this, out );

...

}

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

{

ReadBaseObject( (Base1 *)this, in );

ReadBaseObject( (Base2 *)this, in );

...

}



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