[ ChildInTime @ 19.07.2006. 16:10 ] @
Imam par pitanja... Interesuje me kako inicijalizirati niz objekata neke klase,koje nemaju default-ne konstruktore. Evo na primjer ako imamo neku jednostavnu klasu: Code: class Student { private: char Ime[20]; int Index; public: Student(char *ime,int index) { strcpy(Ime,ime); Index=index; } char*GetIme(){ return Ime; } int GetIndex() { return Index; } void SetIme(char *ime) { strcpy(Ime,ime);} void SetIndex(int index){ Index=index; } void Ispis(){ cout<<"Ime: "<<Ime<<"\nIndex: "<<Index<<endl;} }; kako sad da u main() napravim neki niz od npr 3 studenta i na primjer da unesem za njih podatke,znaci da inicijalizujem preko konstruktora.Znam da to treba uraditi naravno u petlji i da se treba nekako koristiti dupli pokazivac na klasu..al ne mogu da sad odgonetnem kako... Druga stvar,kako je moguce recimo da uradim ovo (u main()) npr Code: Student("Neko",12311) a da ne javi gresku.Sta se tu u stvari dogodilo? Znam da ako hocu da kreiram neki objekat pozivam njegov konstruktor,konkretno u ovom slucaju bi bilo Code: Student S("Neko",12311) Kako je ovo predhodno moguce? Imam jos jedno pitanje ako mognete mi odgovoriti..posto se tek prvi put susrecem sa ovim radi se o izuzecima Recimo da hocu da napravim izuzetak u slucaju da je na primjer broj indexa veci od 15000.Uradim to ovako Code: class Greka{}; //klasa za izuzetak Imam npr. u main() sljedece: Code: void main() { Student S("Neko",12443); int index; cout<<"Unesite novi broj indexa: "; cin>>index; try { S.SetIndex(index); S.Ispis(); } catch(Greska) // kako se moze tek tako samo ime klase napisati, { // jel se to inace tako radi kod izuzetaka, cout<<"Greska...\n"; // znaci kako to da mogu napisati catch(Greska) */ } } gore bi naravno izmjenio funkciju SetIndex: Code: void setIndex(int index) { if(index>15000) throw Greska(); // kako i ovo mogu da napisem jeli ovo else // konstruktor ili nesto drugo, Index=index; // znaci kako da samo stoji Greska() } Izvinite ako su pitanja pomalo glupa,al posto ovo tek ucim nije mi skroz jasno.. Ako mozete molim vas da mi pomognete,posto mi treba brzo,za 1-2 dana. Hvala unaprijed. Pozdrav. |