[ Milan Aksic @ 14.02.2002. 12:29 ] @
Na oznacenim mestima, u implementaciji funkcije clanice PartsList::Iterate(), kao i u deklaraciji funkcije PartsCatalog::ShowAll(), konstantno se prikazuje greska u prevodjenju. Funkcija uzima pokazivac na funkciju clanicu klase Part, koja je const i vraca void: Code: class PartsList { public: PartsList(); ~PartsList(); // potreban je konstruktor kopije i operator jednako void Iterate(void (Part::*f)()const) const; Part * Find(ULONG & positon, ULONG PartNumber) const; Part * GetFirst() const; void Insert(Part *); Part * operator[](ULONG) const; ULONG GetCount() const { return itsCount; } static PartsList & GetGlobalPartsList() { return GlobalPartsList; } private: PartNode * pHead; ULONG itsCount; static PartsList GlobalPartsList; }; // ... void PartsList::Iterate(void (Part::*f)()const) const { if (!pHead) return; PartNode * pNode = pHead; do (pNode -> itsPart -> *f)(); // ovde javlja gresku ! while (pNode = pNode -> itsNext); } // ... class PartsCatalog : private PartsList { public: void Insert(Part *); ULONG Exists(ULONG PartNumber); Part * Get(int PartNumber); // operator+(const PartsCatalog &); void ShowAll() { Iterate(Part::Display); } // i ovde javlja gresku private: PartsList thePartsList; }; Gde je greska? Recite mi, ako bude trebalo da postujem i dodatne implementacije. Pozdrav. |