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.