Das folgende Code-Beispiel stammt aus dem Buch
 
  Objektorientiertes Programmieren in C++
  - Ein Tutorial für Ein- und Umsteiger
 von Nicolai Josuttis, Addison-Wesley München, 2001
 
  © Copyright Nicolai Josuttis 2001
#include <vector>
namespace Bsp {  // ******** Beginn Namensbereich Bsp::
template <typename T, typename CONT = std::vector<T> >
class Stack {
  private:
    CONT elems;    // Elemente
  public:
    Stack();              // Konstruktor
    void push(const T&);  // Element einkellern
    T pop();              // Element auskellern
    T top() const;        // oberstes Element
};
// Konstruktor
template <typename T, typename CONT>
Stack<T,CONT>::Stack ()
{
    // nichts mehr zu tun
}
template <typename T, typename CONT>
void Stack<T,CONT>::push (const T& elem)
{
    elems.push_back(elem);    // Kopie einkellern
}
template <typename T, typename CONT>
T Stack<T,CONT>::pop ()
{
    if (elems.empty()) {
        throw "Stack<>::pop(): der Stack ist leer";
    }
    T elem = elems.back();    // oberstes Element merken
    elems.pop_back();         // oberstes Element auskellern
    return elem;              // gemerktes oberstes Element zurückliefern
}
template <typename T, typename CONT>
T Stack<T,CONT>::top () const
{
    if (elems.empty()) {
        throw "Stack<>::top(): der Stack ist leer";
    }
    return elems.back();      // oberstes Element als Kopie zurückliefern
}
}  // ******** Ende Namensbereich Bsp::