Advertisement
Guest User

Array.h

a guest
Nov 12th, 2018
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. #pragma once
  2.  
  3. template<typename  T>
  4. class Array
  5. {
  6.     T* data;
  7.     size_t size;
  8. public:
  9.     Array(size_t size) : data(new T[size]), size(size){}
  10.  
  11.     Array(const Array<T>& other) : Array(other.size)
  12.     {
  13.         for(int i = 0;i < other.size;i++)
  14.         {
  15.             this->data[i] = other.data[i];
  16.         }
  17.     }
  18.  
  19.     Array<T>& operator=(Array<T>& copy)
  20.     {
  21.         std::swap(this->data,copy.data);
  22.         std::swap(this->size,copy.size);
  23.         return *this;
  24.     }
  25.  
  26.     T& operator[](size_t index) const
  27.     {
  28.         return data[index];
  29.     }
  30.  
  31.     size_t getSize() const
  32.     {
  33.         return this->size;
  34.     }
  35.  
  36.     T* begin()
  37.     {
  38.         return this->data;
  39.     }
  40.  
  41.     T* end()
  42.     {
  43.         return this->data + this->size;
  44.     }
  45.  
  46.     ~Array()
  47.     {
  48.         delete[] this->data;
  49.         this->data = nullptr;
  50.     }
  51. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement