创建具有私有构造函数的类模板的实例

时间:2019-01-23 05:58:43

标签: c++ oop

我有一个带有私有构造函数和静态成员函数的类模板,用于创建该类的对象。如何将类类型传递给函数CreateInstance,以便可以使用类类型调用构造函数?

template <class T> class DelegateHandler: 
{
private:
   DelegateHandler(...);
public:
   static DelegateHandler* CreateInstance(...)
   { 
       DelegateHandler* pDeleGateHandler = new DelegateHandler<T>(...);
       return pDeleGateHandler;
   }
}  

1 个答案:

答案 0 :(得分:0)

无需使用

 const db = mongodb.collection("json");

 function getFile() {
    return db.findOne({ "name": "test" });
 }
DelegateHandler* pDeleGateHandler = new DelegateHandler<T>(...); 成员函数中的

。可以很简单

static

然后您可以使用:

DelegateHandler* pDeleGateHandler = new DelegateHandler(...);  // No <T>

如果您想使用

DelegateHandler<int>* var1 = DelegateHandler<int>::CreateInstance(...);
DelegateHandler<double>* var2 = DelegateHandler<double>::CreateInstance(...);

有很多方法可以支持这一点,但您的帖子尚不清楚您是否愿意这样做。