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;}
};
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)
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)
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
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) */
}
}
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()
}
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.
Maybe one day I'll be na honest man
Up till now I'm doing the best I can...
Up till now I'm doing the best I can...