64,654
社区成员
发帖
与我相关
我的任务
分享
// PointerVector.h
class B;
class PointerVector
{
public:
~PointerVector(void);
...
private:
std::vector<B *> vectorImp_;
};
// PointerVector.cpp
#include "PointerVector.h"
#include <functional>
#include <algorithm>
namespace
{
class PointerDeleter : public std::unary_function<B *, void>
{
public:
result_type operator()(argument_type pointer)
{
delete pointer;
}
};
}
PointerVector::~PointerVector(void)
{
// for each (B *pointer in vectorImp_) delete pointer
std::for_each(vectorImp_.begin(), vectorImp_.end(), PointerDeleter());
}