Хелое!
Коллеги, вот такой вопрос.
Есть необходимость создавать спец-классы для типов и указателей на них.
Типы имеют некую вирт.функцию 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();
то есть, шаблон с АВТОМАТИЧЕСКИМ РАЗНЫМ ИНСТАНЦИРОВАНИЕМ для типов и указателей на оные...
С уважением, ВК