Posted By: Korusef (zmatek nad zmatek) on 'CZprogram' Title: Heterogenni seznam Date: Wed Jan 30 14:20:28 2002 Ahoj Mam objekty O1, O2 (mohou mit spolecneho predka), ktere vyuzivam ke zpracovani dat, pocitam s tim, ze v budoucnu pribudou dalsi. Tyto objekty potrebuji ke sve praci kazdy jina data. V objektu A, jehoz data zpracovavaji je potrebuji zavolat. Jak to udelata? Zatim me napadlo: class O { public: virtual void SetData(void *) = 0; virtual void * GetData() = 0; }; 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? Korusef[ Libor Dener] (-: CauCau :-)