next up previous
Next: Vorgehensweise bei der Implemenmtation Up: Templates, Exceptions sowie Pogrammierung Previous: Bsp. für Function-Template

Bsp. für Class-Template

#include <iostream.h>

template <class T, int size>
class Stack{
private:
  T elements[size];
  int top;
public:
  Stack();
  int push(T);
  int pop(T&);
};

template <class T, int size>
Stack <T, size>::Stack(){ top = -1; }

template <class T, int size>
Stack <T, size>::push(T item)
{
  if (top < size-1)
  {
    elements[++top]=item;
    return 1;
  }
  else 
    return 0;
}




template <class T, int size>
int Stack <T, size>::pop(T& item)
{
  if (top < 0)
    return 0;
  else
  {
    item = elements[top--];
    return 1;
  }
}

int main()
{
  Stack<int, 3> intStack;
  int i;
  
  intStack.push(2);
  intStack.push(3);

  for (int j = 0; j < 3; j++)
  {
    if (intStack.pop(i))
      cout << "Result: " << i << endl;
    else
      cerr << "No Element" << endl;
  }
}


next up previous
Next: Vorgehensweise bei der Implemenmtation Up: Templates, Exceptions sowie Pogrammierung Previous: Bsp. für Function-Template

© 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 3/19/1998