From 317ecbc1f92e867ebd46b5f0c8a4bacf937a1b97 Mon Sep 17 00:00:00 2001 From: Angel Ortigosa Perez Date: Wed, 8 Apr 2026 20:51:29 +0200 Subject: [PATCH] ex02 fixed --- ex02/Array/Array.hpp | 2 +- ex02/Array/Array.tpp | 4 +- ex02/main.cpp | 87 ++++++++++++++++++++++---------------------- 3 files changed, 46 insertions(+), 47 deletions(-) diff --git a/ex02/Array/Array.hpp b/ex02/Array/Array.hpp index 28f51e4..5eefdd9 100644 --- a/ex02/Array/Array.hpp +++ b/ex02/Array/Array.hpp @@ -31,7 +31,7 @@ class Array ~Array(); Array(unsigned int n); - T &operator[](unsigned int n); + T &operator[](int n); unsigned int size() const; }; diff --git a/ex02/Array/Array.tpp b/ex02/Array/Array.tpp index bc7da8d..623089f 100644 --- a/ex02/Array/Array.tpp +++ b/ex02/Array/Array.tpp @@ -64,9 +64,9 @@ Array::Array(unsigned int n) : length(n) } template -T &Array::operator[](unsigned int n) +T &Array::operator[](int n) { - if (n >= length) + if (n < 0 || (unsigned int)n >= length) throw std::exception(); return (data[n]); } diff --git a/ex02/main.cpp b/ex02/main.cpp index e50005f..5b1cbe3 100644 --- a/ex02/main.cpp +++ b/ex02/main.cpp @@ -1,53 +1,52 @@ -#include +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: aortigos numbers(MAX_VAL); - int* mirror = new int[MAX_VAL]; - srand(time(NULL)); - for (int i = 0; i < MAX_VAL; i++) - { - const int value = rand(); - numbers[i] = value; - mirror[i] = value; - } - //SCOPE - { - Array tmp = numbers; - Array test(tmp); - } + Array nb(6); + nb[0] = 0; + nb[1] = 1; + nb[2] = 2; + nb[3] = 3; - for (int i = 0; i < MAX_VAL; i++) - { - if (mirror[i] != numbers[i]) - { - std::cerr << "didn't save the same value!!" << std::endl; - return 1; - } - } - try - { - numbers[-2] = 0; - } - catch(const std::exception& e) - { - std::cerr << e.what() << '\n'; - } - try - { - numbers[MAX_VAL] = 0; - } - catch(const std::exception& e) - { - std::cerr << e.what() << '\n'; - } - for (int i = 0; i < MAX_VAL; i++) + std::cout << "Imprimiendo array de ints..." << std::endl; + try { + std::cout << "Posicion X: " << nb[5] << std::endl; + } catch(std::exception &e) { - numbers[i] = rand(); + std::cout << e.what() << std::endl; } - delete [] mirror;// - return 0; + + std::cout << "Tamaño: " << nb.size() << std::endl; + + Array st(6); + st[0] = "as2"; + st[1] = "wa1"; + st[2] = "lf2"; + st[3] = "as3"; + st[4] = "xs4"; + st[5] = "aj5"; + + std::cout << std::endl << "Imprimiendo array de strs..." << std::endl; + + try { + std::cout << "Posicion X: " << st[4] << std::endl; + } catch(std::exception &e) + { + std::cout << e.what() << std::endl; + } + + std::cout << "Tamaño: " << st.size() << std::endl; } \ No newline at end of file