home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / gcc / cc1plus / !gcc / files / cc / template < prev   
Encoding:
Text File  |  1996-11-09  |  753 b   |  63 lines

  1. /* Template repository demonstration.  */
  2.  
  3. template<class T> class stack {
  4.   T* v;
  5.   T* p;
  6.   int sz;
  7. public:
  8.   stack(int);
  9.   ~stack();
  10.  
  11.   void push (T);
  12.   T pop();
  13.  
  14.   int size() const;
  15. };
  16.  
  17. template<class T> void stack<T>::push(T a)
  18. {
  19.   *p++ = a;
  20. }
  21.  
  22. template<class T> stack<T>::stack(int s)
  23. {
  24.   v = p = new T[sz=s];
  25. }
  26.  
  27. template<class T> stack<T>::~stack()
  28. {
  29.   delete[] v;
  30. }
  31.  
  32. template<class T> T stack<T>::pop()
  33. {
  34.   return *--p;
  35. }
  36.  
  37. template<class T> int stack<T>::size() const
  38. {
  39.   return p-v;
  40. }
  41.  
  42. stack<int> ip(200);
  43.  
  44. void f(stack<int>& sc)
  45. {
  46.   sc.push(10);
  47.   int z = 4*sc.pop();
  48.  
  49.   stack<char>*p = 0;
  50.   p = new stack<char>(800);
  51.  
  52.   for (int i = 0; i < 400; i++) {
  53.     p->push(i);
  54.   }
  55. }
  56.  
  57. int main (void)
  58. {
  59.   f (ip);
  60.   printf ("It worked\n");
  61.   return 0;
  62. }
  63.