Posted By: RoboShim (ICQ #: 166 703 40) on 'CZprogram'
Title:     Re: Heterogenni seznam
Date:      Fri Feb  1 08:37:26 2002

> class O1: public O
> {
> .......
> };
> 
> class O2: public O
> {
> .......
> };
> 
> class A
> {
>     void Akce()
>     {
>       for( vector<O*>::iterator i = vec.begin(); i < vec.end(); i++){
>           (*i)->SetData( GetData( (*i)->identifikator_typu ));
>           (*i)->Run();
>           SetData( (*i)->identifikator_typu, (*i)->GetData());
>       }
>     }
>     
>     virtual void * GetData( const int type_id)
>     {
>         switch(type_id)of
>             case cStr_o1:
>               ...
>             case cStr_o2:
>               ...
>         }
>     }
> 
>     virtual void SetData( const int type_id, void * p)
>     {
>         switch(type_id)of
>             ....
>         }
>      }
> };
> 
> Jde to udelat nejak jinak?
> Co se mi na tom nelibi je to type_id, predpoklada to, ze si vytvorim nejake 
> popisovani typu. Neni neco podobneho uz implementovano?

*** Teda nejsem si jistej, ale nemel bys spis udelat v tech tridach ty metody 
setData a GetData pro kazdou tridu ten prislusnej? Pak bys nepotreboval nic 
zjistovat pres swtich a zavolala by se spravna metoda pri behu (ted jsem o 
tom cetl:), tusim se tomu rika pozdni vazba nebo tak nejak, proste spravna 
metoda se vybere az pri behu programu). Samozrejme ze pak v A::Akce musis mit 
v tom cyklu v promennej i odkazy na ty objecty O1, O2 ....

Snad nekecam kraviny.

RoboShim.

Search the boards