У меня есть шаблон класса с частным конструктором и статической функцией-членом для создания объекта класса. Как передать тип класса в функцию CreateInstance, чтобы конструктор можно было вызвать с типом класса?
template <class T> class DelegateHandler:
{
private:
DelegateHandler(...);
public:
static DelegateHandler* CreateInstance(...)
{
DelegateHandler* pDeleGateHandler = new DelegateHandler<T>(...);
return pDeleGateHandler;
}
}
Нет необходимости использовать
DelegateHandler* pDeleGateHandler = new DelegateHandler<T>(...);
в функции-члене static
. Это может быть просто
DelegateHandler* pDeleGateHandler = new DelegateHandler(...); // No <T>
и тогда вы можете использовать:
DelegateHandler<int>* var1 = DelegateHandler<int>::CreateInstance(...);
DelegateHandler<double>* var2 = DelegateHandler<double>::CreateInstance(...);
и Т. Д.
Если вы хотите использовать
DelegateHandler<int>* var = DelegateHandler<double>::CreateInstance<int>(...);
есть способы поддержать это, но из вашего поста не ясно, хотите ли вы это сделать.
Что вы подразумеваете под "пройти тип класса"? Что куда передать? Пожалуйста, будьте конкретны.