Files
cpp07/ex02/Array/Array.tpp
aortigos 582f5ad276 Fixes
2026-03-23 09:56:09 +01:00

74 lines
1.9 KiB
C++

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* Array.tpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: aortigos <aortigos@student.42malaga.com +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2026/03/21 17:09:36 by aortigos #+# #+# */
/* Updated: 2026/03/22 21:42:21 by aortigos ### ########.fr */
/* */
/* ************************************************************************** */
template <typename T>
Array<T>::Array() : data(NULL), _size(0)
{
// std::cout << "Default constructor called" << std::endl;
}
template <typename T>
Array<T>::Array(unsigned int n) : _size(n)
{
data = new T[n];
}
template <typename T>
Array<T>::Array(const Array &other) : _size(other._size)
{
data = new T[other._size];
for (unsigned int i = 0;i < _size; i++)
data[i] = other.data[i];
}
template <typename T>
Array<T> &Array<T>::operator=(const Array &other)
{
if (this != &other)
{
delete[] data;
_size = other._size;
data = new T[_size];
for (unsigned int i = 0;i < _size; i++)
data[i] = other.data[i];
}
return (*this);
}
template <typename T>
Array<T>::~Array()
{
delete[] data;
}
template <typename T>
T &Array<T>::operator[](unsigned int i)
{
if (i >= _size)
throw std::exception();
return (data[i]);
}
template <typename T>
T const &Array<T>::operator[](unsigned int i) const
{
if (i >= _size)
throw std::exception();
return (data[i]);
}
template <typename T>
unsigned int Array<T>::size() const
{
return (_size);
}