Здравствуйте Аноним, Вы писали:
А>А>class TCollect
А>{
А>public:
А> TCollect(int aSizeIt);
А> ~TCollect() { delete items; };
А> int Count() const { return count; };
А> UINT SizeBytes() const { return count*size_it; }
А> UINT SizeElem() const { return size_it; }
А> char* At(int index) const { return items+(index*size_it); };
А> BOOL Insert(int index, const void *item);
А>protected:
А> char *items;
А> int count;
А> unsigned size_it;
А>};
А>template <class T> class TCollection : public TCollect
А>{
А>public:
А> TCollection() : TCollect(sizeof(T)) {}
А> BOOL Insert(const T &item, int i=-1) { return TCollect::Insert(i, &item); };
А> T* At(int i) const { return (T*)TCollect::At(i); };
А>};
А>
А>всего
Это совершенно неправильный пример использования шаблонов!
Шаблоны как раз позволяют (и предназначены для того чтобы)
такое не писать!
И даже не потому, что плохо написано.
Такое просто не работает!