Как реализовать шаблон для типов и указателей на типы?
От: Frostyland  
Дата: 18.02.04 06:44
Оценка:
Хелое!

Коллеги, вот такой вопрос.
Есть необходимость создавать спец-классы для типов и указателей на них.
Типы имеют некую вирт.функцию f(), которая должна вызываться из спецкласса.

Реализуя шаблон типа
template<typename T>
class ObjectHolder
{
public:
  __fastcall ObjectHolder(T Obj) : FData(Obj){};
  virtual void __fastcall Show(){FData.f();};
  T FData;
};

мы не можем параметризовать его указателем, а типа
template<typename T>
class ObjectHolder
{
public:
  __fastcall ObjectHolder(T Obj) : FData(Obj){};
  virtual void __fastcall Show(){FData->f();};
  T FData;
};

можем хранить тока указатели
А можна как-то решить такую проблему вот так:
type t;
type* pt;

Base* bt = new ObjectHolder<some_type>(t);
Base* bpt = new ObjectHolder<some_type*>(pt);
bt->Show();
bpt->Show();

то есть, шаблон с АВТОМАТИЧЕСКИМ РАЗНЫМ ИНСТАНЦИРОВАНИЕМ для типов и указателей на оные...

С уважением, ВК
С уважением, В.Куликов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.