ex02: fix and add test
This commit is contained in:
parent
90b510cf0c
commit
810105e554
@ -4,7 +4,7 @@ SRCDIR := src
|
|||||||
OBJDIR := obj
|
OBJDIR := obj
|
||||||
NAME := ex02
|
NAME := ex02
|
||||||
|
|
||||||
SRCS := $(wildcard $(SRCDIR)/*.tpp)
|
SRCS := $(wildcard $(SRCDIR)/*.cpp)
|
||||||
OBJS := $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$(SRCS))
|
OBJS := $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$(SRCS))
|
||||||
|
|
||||||
all: $(NAME)
|
all: $(NAME)
|
||||||
@ -23,4 +23,4 @@ fclean: clean
|
|||||||
rm -fr $(NAME)
|
rm -fr $(NAME)
|
||||||
|
|
||||||
re: fclean
|
re: fclean
|
||||||
@make --no-print-directory all
|
@make --no-print-directory all
|
||||||
|
@ -11,15 +11,18 @@ class Array
|
|||||||
unsigned int _size;
|
unsigned int _size;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Array():
|
Array():
|
||||||
_arr(new T[0]),
|
_arr(new T[0]),
|
||||||
_size(0)
|
_size(0)
|
||||||
{};
|
{};
|
||||||
Array(unsigned int n):
|
|
||||||
|
Array(unsigned int n):
|
||||||
_arr(new T[n]),
|
_arr(new T[n]),
|
||||||
_size(n)
|
_size(n)
|
||||||
{};
|
{};
|
||||||
Array(const Array& src)
|
|
||||||
|
Array(const Array& src)
|
||||||
{
|
{
|
||||||
new T[0];
|
new T[0];
|
||||||
*this = src;
|
*this = src;
|
||||||
@ -33,22 +36,23 @@ class Array
|
|||||||
Array& operator=(const Array& src)\
|
Array& operator=(const Array& src)\
|
||||||
{
|
{
|
||||||
if (this == &src)
|
if (this == &src)
|
||||||
return ;
|
return *this;
|
||||||
delete[] this->_arr;
|
delete[] this->_arr;
|
||||||
this->_size = src._size;
|
this->_size = src._size;
|
||||||
new T[src._size];
|
new T[src._size];
|
||||||
for (size_t i = 0; i < src._size; i++)
|
for (size_t i = 0; i < src._size; i++)
|
||||||
this->_arr[i] = src._arr[i];
|
this->_arr[i] = src._arr[i];
|
||||||
};
|
};
|
||||||
Array& operator[](unsigned int index)
|
|
||||||
|
T& operator[](unsigned int index) const
|
||||||
{
|
{
|
||||||
if (index >= _size)
|
if (index >= _size)
|
||||||
throw std::exception();
|
throw std::exception();
|
||||||
return _arr[index];
|
return this->_arr[index];
|
||||||
};
|
};
|
||||||
|
|
||||||
unsigned int size() const
|
unsigned int size() const
|
||||||
{
|
{
|
||||||
return _size;
|
return this->_size;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
37
ex02/src/main.cpp
Normal file
37
ex02/src/main.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
#include "Array.hpp"
|
||||||
|
#include <exception>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::cout << "Create with 0 size" << std::endl;
|
||||||
|
{
|
||||||
|
Array<int> t(0);
|
||||||
|
}
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
|
std::cout << "Access to invalid index ";
|
||||||
|
{
|
||||||
|
Array<int> t(0);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
t[0];
|
||||||
|
std::cout << "failed !" << std::endl;
|
||||||
|
}
|
||||||
|
catch (std::exception& e)
|
||||||
|
{
|
||||||
|
std::cout << "success !" << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::cout << "Fill and get";
|
||||||
|
{
|
||||||
|
unsigned int size = 10;
|
||||||
|
Array<int> t(size);
|
||||||
|
for (unsigned int i = 0; i != size; i++)
|
||||||
|
t[i] = i;
|
||||||
|
for (unsigned int i = 0; i != size; i++)
|
||||||
|
std::cout << i << std::endl;
|
||||||
|
}
|
||||||
|
std::cout << std::endl;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user