[ zlatko84 @ 11.11.2009. 14:16 ] @
Evo kako glasi zadatak nikako ga ne mogu rijesiti a i pojam kotejnera mi je malo nejasan.
Zadatak: Napisati apstraktnu klasu Takmicar, iz koje treba izvesti (neapstraktne) klase Momiri, Adnani i Mirkovi. Klasa Takmicar treba da ima cisto virtualnu metodu bool odgovori() koja vraca true ili false u zavisnosti od odgovora. Rezultat se generise slucajno, na osnovu vjerovatnoca. Momiri pogadjaju 1 od 10 pitanja, Adnani 1 od 8, a Mirkovi 29 od 30. Napisati klasu Kviz koja sadrzi neki kontejner Takmicar pokazivaca, metodu za ubacivanje takmicara u kviz, metodu odgovotiSvi() koja pomocu iteratora prolazi kroz kontejner i za sve takmicare poziva metodu odgovori(). Klasa kviz treba da ima i metodu uspjesnost koja vraca ukupnu uspjesnost takmicara u kvizu.

Molim vas ljudi pomagajte sutra imam ispit a nisu mi jasne neke stvari...
[ Mihajlo Cvetanović @ 11.11.2009. 22:24 ] @
Na srpskom je kontejner ono što je na engleskom container ("sadržavač"). Tim pojmom se označava bilo kakav objekat čija je osnovna funkcija da sadrži druge objekte. Kontejneri su vektori, liste, mape, skupovi, stabla, baferi, redovi, i tako dalje. Svaki od navedenih ima neku ekstra osobinu zbog koje je i izmišljen i zbog koje postoji. U ovom zadatku slobodan si da odabereš kontejner koji želiš, i prilično je svejedno koji ćeš odabrati, ali pretpostavljam da je lista najjednostavnija. Pitaj ako ti još nešto nije jasno. Neću ti pokazivati kod, ali možeš ti nešto da napišeš, pa da mi prokomentarišemo.
[ zlatko84 @ 12.11.2009. 07:24 ] @
Konkretno u ovom zadatku mi nije jasno kako ubaciti takmicar u kontejner... evo kako sam ja poceo...
class Takmicar {
public:
virtual bool odgovori() = 0;
};
class Momiri : public Takmicar {
public:
bool odgovori() {}
};
class Adnani : public Takmicar {
public:
bool odgovori() {}
};
class Mirkovi : public Takmicar {
public:
bool odgovori() {}
};
class Kviz {
public:
vector <Takmicar*> t;
void ubaci(Takmicar* tak) {
t.push_back(tak);
}
};

e sad me interesuje kako da ubacim npr. Momiri u ovaj kontejner koji je napravljen od vektora i kako kasnije da ga pozivam...
[ deerbeer @ 12.11.2009. 08:53 ] @
Citat:

e sad me interesuje kako da ubacim npr. Momiri u ovaj kontejner koji je napravljen od vektora i kako kasnije da ga pozivam...


Code:

//kreiranje takmicara 
Takmicar* m = new Momiri () ; 
..
//ubacivanje u kontejner 
Kviz k ; 
k.ubaci (m) ; 

//za svakog takmicara u nizu poziva se odgovori f-ja .. 
for (int i=0; i < k.t.size();i++)
   k.t[i]->odgovori () ; 
[ zlatko84 @ 12.11.2009. 09:07 ] @
Hvala ali neces vjerovatri prije 15 min. sam i sam skontao kako ide i uradio na identican nacin kao ti... ali bez obzira hvala ti puno... ako bude jos nekih pitanja mogu da ti se obratim nece biti problem sto dosadjujem...
Hvala jos jednom...
[ Goran Arandjelovic @ 13.11.2009. 16:31 ] @
Nemoj da zaboraviš da obrišeš Takmičare iz vektora pre nego što vektor izađe iz scope-a (tj, pre nego što se završi funkcija u kojoj se recimo vektor nalazi na steku)

Dakle, kad završiš sa Takmičarima i vektorom sve što si želeo...
Code:

Kviz k;

// Nešto radiš s Kvizom...

for(vector<Takmicar*>::iterator i = k.t.begin(); i != k.t.end(); ++i)
{
  delete *i;
}