This commit is contained in:
starnakin 2023-09-26 13:50:14 +02:00
parent 23311296d0
commit 066d646cf5
2 changed files with 77 additions and 0 deletions

26
ex02/Makefile Normal file
View File

@ -0,0 +1,26 @@
CXX := c++
CXXFLAGS := -std=c++98 -Wall -Wextra -Werror -g
SRCDIR := src
OBJDIR := obj
NAME := ex02
SRCS := $(wildcard $(SRCDIR)/*.tpp)
OBJS := $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$(SRCS))
all: $(NAME)
$(OBJDIR)/%.o: $(SRCDIR)/%.cpp
mkdir -p $(OBJDIR)
$(CXX) $(CXXFLAGS) -c $< -o $@
$(NAME): $(OBJS)
$(CXX) $(CXXFLAGS) $^ -o $@
clean:
rm -rf $(OBJDIR)
fclean: clean
rm -fr $(NAME)
re: fclean
@make --no-print-directory all

51
ex02/src/Array.hpp Normal file
View File

@ -0,0 +1,51 @@
#pragma once
template<typename T>
class Array
{
private:
T* _arr;
unsigned int _size;
public:
Array():
_arr(new T[0]),
_size(0)
{};
Array(unsigned int n):
_arr(new T[n]),
_size(n)
{};
Array(const Array& src)
{
new T[0];
*this = src;
};
~Array()
{
delete[] this->_arr;
};
Array& operator=(const Array& src)\
{
if (this == &src)
return ;
delete[] this->_arr;
this->_size = src._size;
new this->_arr[src._size];
for (size_t i = 0; i < src._size; i++)
this->_arr[i] = src._arr[i];
};
Array& operator[](unsigned int index)
{
if (i >= _size)
throw std::exception();
return _array[i];
};
unsigned int size() const
{
return _size;
};
};