#ifndef ARRAY_HPP #define ARRAY_HPP #include template class Array { private: T *_data; // pointeur vers les données size_t _size; // nombre d'éléments public: Array() : _data(NULL), _size(0) {} Array(unsigned int n) { _data = new T[n](); _size = n; } Array(const Array &other) : _size(other._size) { _data = new T[_size](); for (size_t i = 0; i < _size; i++) _data[i] = other._data[i]; } ~Array() { delete[] _data; } Array &operator=(const Array &other) { if (this == &other) return *this; delete[] this->_data; _size = other._size; _data = new T[_size](); for (size_t i = 0; i < _size; i++) _data[i] = other._data[i]; return *this; } T &operator[](size_t index) { if (this->_size <= index) throw std::out_of_range("Out of array size"); else return this->_data[index]; } size_t size() const { return this->_size; } }; #endif