///////////////////////////////////////////////// // String-Cache class TStrCache{ private: TStrH StrH; int Hits, Rqs; public: TStrCache(const int& ExpectedStrs=0): StrH(ExpectedStrs), Hits(0), Rqs(0){} TStrCache(const TStrCache& StrCache): StrH(StrCache.StrH), Hits(StrCache.Hits), Rqs(StrCache.Rqs){} TStrCache(TSIn& SIn): StrH(SIn), Hits(0), Rqs(0){} void Save(TSOut& SOut){StrH.Save(SOut);} TStrCache& operator=(const TStrCache& StrCache){ if (this!=&StrCache){StrH=StrCache.StrH; Hits=0; Rqs=0;} return *this;} void Clr(){StrH.Clr();} TStr GetStr(const TStr& Str); };