[ dekanio @ 12.05.2009. 11:58 ] @
Lagani sam padobranac kada su u pitanju sabloni klasa u C++, ali pravim neku aplikaciju i pitam se da li da sablonizujem klase koje sam vec napravio, naravno pre toga bi se potrudio da savladam taj koncept. Napravio sam klase : CPresekOkrugli, CPresekOvalni, CPresekPravougaoni, CPresekNeobicni, sve cetiri imaju javne funkcije CreatePresek-za inicijalizaciju objekta, i PopuniPresek-funkcija koja u paralelizmu (koliko-procesora, toliko-niti) popunjava dvodimenzionalni vektor izvrsavajuci neki algoritam, pokazivac na taj vektor je jedan od clanova klase(javni). Namera mi je da taj sablon koristim u svojoj aplikaciji na sledeci nacin :

stdPrs::presek<ovalni>prs;/*dolaze u obzir sledece konkretizacije: okrugli, ovalni, pravougaoni, neobicni. Neke druge konkretizacije nemaju smisla, i to je ono sto me buni.*/
prs.CreatePresek(razni argumenti);
prs.PopuniPresek();

Nadam se da sam jasan. Hvala.
[ Mihajlo Cvetanović @ 12.05.2009. 13:38 ] @
Imaš rešenje koje radi, i ne nalaziš mu mana, i ne vidiš šta bi ti promena poboljšala... Ja tu ne bih ništa menjao.
[ Časlav Ilić @ 13.05.2009. 09:55 ] @
Citat:
dekanio: stdPrs::presek<ovalni>prs;/*dolaze u obzir sledece konkretizacije: okrugli, ovalni, pravougaoni, neobicni. Neke druge konkretizacije nemaju smisla, i to je ono sto me buni.*/


Šablon ovde ne bi imao smisla. Jedno zbog toga što i sam kažeš, drugo što šablonski argument pri specijalizaciji treba da bude neki tip (šta bi bili okrugli, ovalni, itd. nabrajanje neko?), treće što u definiciji šablona ne treba nigde da se osvrće na to za koji je tip specijalizovan (sve mi deluje da bi ovako došao do if (okrugli) ... i sl. u definiciji).

Umesto toga, ne reče da li su trenutne klase izvedene iz neke natklase, npr. CPresek? Jer ovo mi liči na tipičan primer gde odgovara nasledna hijerarhija.
[ dekanio @ 13.05.2009. 12:25 ] @
Mihajlo i Caslave, hvala vam na odgovorima.
Shvatio sam da cak i da mogu da napravim sablon kako sam zamislio, sto je nemoguce iz razloga koje je naveo Caslav, to ne bi doprinelo svedenijem kodu aplikacije. Verovatno bi nasledjivanje bilo na mestu, ali to prevazilazi moje znanje, tako da cu ove klase preseka i klase koje se na njih odnose da tretiram nezavisno.Nije u duhu C++, ali sta je tu je.
Pozdrav.