DSh*_*ook 4 c++ destructor stl vector
使用包含指向对象的指针的向量然后使用clear函数不会为向量中的对象调用析构函数.我做了一个手动执行此操作的函数,但我不知道如何使它成为可能在向量中的任何类型对象的泛型函数.
void buttonVectorCleanup(vector<Button *> dVector){
Button* tmpClass;
for(int i = 0; i < (int)dVector.size(); i++){
tmpClass = dVector[i];
delete tmpClass;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的函数,它适用于向量中特定类型的对象,但我想要一个可以使用任何类型的向量与对象指针的函数.
最好的办法是使用智能指针,例如Boost.然后将自动删除对象.
或者你可以制作模板功能
template <class T>
void vectorCleanup(vector<T *>& dVector){
T* tmpClass;
for(vector<T*>::size_type i = 0; i < dVector.size(); i++){
tmpClass = dVector[i];
delete tmpClass;
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |