Zdravim,
dopredu se omlouvam za vyrazy, obcas se mi pletou pojmy.
Mám třídu Otec, která dělá základní věci (např. funkce read(), write() apod)
Tato třída má potomky: PotomekA, PotomekB, PotomekC, které budou mít své vlastní funkce. Tyto funkce budou však pojmenovány ve všech potomcích stejně, jen s jinými parametry.
Jde o to, nevím, jakou funkci z které třídy použiju. Vše je na uživateli, který si způsob vybere pomocí argumentů celého programu. Já tedy načtu argumenty programu, zjistím že budu pracovat s funkcí potomka B. jak to provedu? Kamarád mi radil tento způsob:
switch (method) {
case 'A': {
PotomekA x;
break;
}
case 'B': {
PotomekB x;
break;
}
case 'C': {
PotomekC x;
break;
}
}
Otec o = (Otec) x;
A pak pracovat stylem: o.fce(i,j); apod
Ale v tomhle případě mi to píše chybu:
error: ‘class Otec’ has no member named ‘fce’
Pak jsem ještě zkoušel ten samý kód ale bez toho abych CASE dával do závorek { }. a napsalo mi to tohle:
error: jump to case label [-fpermissive]
error: crosses initialization of ‘PotomekA x'
Poradíte mi prosím jak na to ?