65,183
社区成员




// 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());
}