// pointers07.cpp #include "Undo.h" // Undo class definition #include class UndoManager { public: ~UndoManager() { // delete all Undo objects for (std::vector::iterator it = m_Actions.begin(), end = m_Actions.end(); it != end; ++it) delete *it; m_Actions.clear(); } void AddUndoObject(Undo* p) { m_Actions.push_back(p); } void UndoLastAction(std::vector >& bitmap) { // remove last action from list and undo it Undo* p = m_Actions.back(); m_Actions.pop_back(); p->Restore(bitmap); delete p; } private: std::vector m_Actions; };