Olen luomassa ohjelmaa jossa on Koulu olio joka sisältää Koulutuohjelma olioita vectorissa joka taas sisältää Opiskelija ja Opettaja olioita omissa vectoreissaan. Nyt mietin mikä on paras tapa käyttää näitä olioita. Olen harkinnut getteriä joka palauttaa viittauksen olioon indexin pohjalta esim:
Koulutusohjelma& Koulu::annaKoulutusohjelma(int i) { return koulutusohjelmat_[i]; } // Käyttö: Koulutusohjelma &k = koulu.annaKoulutusohjelma(1); cout<<k.annaNimi();
Onko tämä hyvä tapa vai olisiko jotain parempaa tapaa käyttää olioita?
Tuohan riippuu siitä, miten kyseisiä olioita on tarkoitus käyttää. Tässä tapauksessa viittaukset vaikuttavat mielestäni järkeviltä. Tosin itse keksisin jotakin muuta yksilöimään koulutusohjelmia kuin indeksit, esimerkiksi oma id jokaiselle oliolle. Silloin koulutusohjelman identiteetti ei ole riippuvainen sen sijainnista tietokoneen muistissa, vaan ennalta määritetystä tunnuksesta. Näinhän se menee oikeastikin. Samalla jää mahdollisuus laajentaa ohjelmaa joskus niin, että koulutusohjelmat tulevat tietokannasta, ja olion id on sama kuin kannassa, jolloin Koulu::annaKoulutusohjelma voi palauttaa ohjelman sen ennalta määritetyn id:n perusteella.
Aihe on jo aika vanha, joten et voi enää vastata siihen.