

c++ rada
zdravim, neviem si rady s c++:
mam triedu prvok:
private pozx_d
a public metodu pozx, ktora vrati pozx_d.
z tejto triedy mam potomka:
class mravce:public prvok
{
private:
int pocet_d;
prvok *mravce_d;
public....nejake metody
z triedy prvok mam aj dalsieho potomka:
class nadprvok: public prvok
{
private:
public:
virtual void pohni(int pX, int pY);
void hladaj(mravce *mrav, int *pX, int *pY);...
v triede nadprvok chcem pomocou metody hladaj(v maine ju volam takto: m.hladaj(&mr, &pX,&pY); pricom m je typu nadprvok) najst najblizsi prvok z triedy mravce.
telo hladaj:
void nadprvok::hladaj(mravce *mrav, int *pX,int *pY)
{
int poc=mrav->pocet();
...
int xx;
for (int i=0;i<poc;i++)
{
xx=mrav[i].PozX();
...
}
}
toto: xx=mrav[i].PozX(); - zistil som, ze sa mi tam nedava aktualna pozicia(ale udaj, ktory pouziva konstruktor) i-teho mravca....nevie niekto kde je problem? dakujem.
tu je projekt v ms visual studiu:
rapidshare.com/files/107794035/sem.rar
Nie je jednoduché odhaliť logickú chybu, ktorá tam niekde je, pretože ten program je veľmi náročný na pochopenie.
Hlavne, že ti to ide, ale zopár otázok na zamyslenie:
- Prečo je trieda mravce odvodená z triedy prvok? Nezdá sa mi, že by sa to tam niekde využívalo a logicky mi to nedáva zmysel.
- Prečo si si zvolil také divné názvy pre triedy, ako sú prvok, nadprvok a mravce? Logickejšie by bolo mravec namiesto prvok, mravenčiar namiesto nadprvok a zoznam mravcov (std::list<mravec> alebo len obyčajné pole) namiesto špeciálnej triedy mravce.
-mravce odvodená z triedy prvok?
...tazko povedat...v skole sme robili nieco podobne a tak som to aj ja tak spravil-v podstate je to tam asi koli zapuzdreniu-takto ovladam vsetky mravce jednym prikazom z mainu a nemusim ich vsetky osobitne(myslim v cykle for) ovladat v maine.
- k tym nazvom....no najrv som si to skusal a ked som mal toho dost napisaneho, uz sa mi to nechcelo robi odznovu.