Ahojte zas riešim jeden zapeklitý problém, z ktorého neviem vykorčulovať a bol by som rád ak by sa našiel niekto kto by mi vedel pomôcť, alebo aspoň nasmerovať.
Mám triedu Base, a jej potomkov Dyn_obj a Stat_obj, ktoré majú tú istú virtuálnu metódu Draw() a
kontajner ktorý obsahuje smerníky na Base. Do neho samozrejme vkladám raz objekty typu Dyn_obj a inokedy Stat_obj.
Keď na každý jeho prvok zavolám Draw() tak sa to vykreslí správne. Problém, je však vtedy ak sa snažím spraviť kópiu tohoto kontajneru pomocou metódy Copy(). Ak ju dám potom vypísať tak sa všetky objekty kópie tvária ako typu Base. Prikladám kus kodu
Copy(Kontajner *kopia_kontajneru)
for(int i=0; i<100; i++)
{
if(kontajner->prvok(i) !=NULL)
{
Base* pom= Base(*kontajner->prvok(i));
Dyn_obj *pom_do = dynamic_cast<Dyn_obj *> (pom);
if(pom_do!=NULL)
{
pom_do= new Dyn_obj(* dynamic_cast<Dyn_obj *> (kontajner->prvok(i));
kopia_kontajneru->pridaj(pom_do); //ako parameter ma smernik na Base
}
}
}