我有一个池管理器模板类。将类对象添加回池管理器时,我希望将其重置回其初始状态。我想调用它的初始化析构函数和初始化构造函数,以便在下一次由池管理器发放时完全重置它。我尝试了许多方法来使其工作,但我被卡住了。这是我尝试过的一个例子。
template <class T>
void PoolClass<T>::ReleaseToPool(T *obj)
{
obj->~T(); //call destructor
obj->T::T(); //call constructor
//also tried new (obj)T(); //but this doesn t seem to work either
//then misc code to add a pointer to the object
//to my list of available objects for re-use later
}
我尝试了一堆不同的语法,但没有一种似乎有效。代码本身是跨平台的,因此应该可以使用gcc编译(在mingw、linux或mac下),而对于Windows,我仍然在使用vs 2003。