//: C03:Nobloat.h // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Templatized InheritStack.cpp #ifndef NOBLOAT_H #define NOBLOAT_H #include "../C0A/Stack4.h" template class NBStack : public Stack { public: void push(T* str) { Stack::push(str); } T* peek() const { return (T*)Stack::peek(); } T* pop() { return (T*)Stack::pop(); } ~NBStack(); }; // Defaults to heap objects & ownership: template NBStack::~NBStack() { T* top = pop(); while(top) { delete top; top = pop(); } } #endif // NOBLOAT_H ///:~