Advertisement
ewelina_r

ex10

Jun 19th, 2015
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. template <class T>
  6. class Array{
  7.     T * tab;
  8.     int rozmiar;
  9. public:
  10.     Array() : tab(NULL), rozmiar(0) {}
  11.     ~Array();
  12.     void pushBack(T const &);
  13.     bool reserve(int);
  14.     T & operator[](unsigned) const;
  15.     int getSize() const;
  16.     void show();
  17. };
  18.  
  19. template <class T>
  20. Array<T>::~Array(){
  21.     delete [] tab;
  22. }
  23.  
  24. template <class T>
  25. void Array<T>::pushBack(T const & t){
  26.     reserve(rozmiar + 1);
  27.     tab[rozmiar - 1] = t;
  28. }
  29.  
  30. template <class T>
  31. bool Array<T>::reserve(int size){
  32.     if (size > rozmiar){
  33.         T * newTab = new T[size];
  34.     for (int i = 0 ; i < rozmiar; ++i)
  35.         newTab[i] = tab[i];
  36.     delete [] tab;
  37.     tab = newTab;
  38.     rozmiar = size;
  39.     return true;
  40.     } else
  41.     return false;
  42. }
  43.  
  44. template <class T>
  45. T & Array<T>::operator[](unsigned i)const{
  46.     return tab[i-1];
  47. }
  48.  
  49. template <class T>
  50. int Array<T>::getSize(void) const{
  51.     return rozmiar;
  52. }
  53.  
  54. template <class T>
  55. void Array<T>::show(){
  56.     for (int i = 0; i < rozmiar; i++){
  57.         cout << tab[i] << " ";
  58.     }
  59.     cout << endl;
  60. }
  61.  
  62.  
  63. int main(){
  64.     Array <int> t1;
  65.     t1.pushBack(2);
  66.     t1.pushBack(5);
  67.     t1.show();
  68.     int x = t1.getSize();
  69.     cout << "Rozmiar tablicy: " << x << endl;
  70.     cout << t1[2] << endl;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement