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.