From 516baf57fe2b4b6efac0b897621797baf7843ecc Mon Sep 17 00:00:00 2001 From: Adam JOLY Date: Mon, 18 Nov 2024 17:50:34 +0100 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E2=9C=A8=E3=80=8D=20feat(Ex00):=20Fin?= =?UTF-8?q?ished=20Ex00?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ex00/Fixed | Bin 0 -> 17128 bytes ex00/Fixed.cpp | 41 ++++++++++++++++++++++++++++++++++++ ex00/Fixed.hpp | 28 +++++++++++++++++++++++++ ex00/Makefile | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ ex00/main.cpp | 25 ++++++++++++++++++++++ 5 files changed, 149 insertions(+) create mode 100755 ex00/Fixed create mode 100644 ex00/Fixed.cpp create mode 100644 ex00/Fixed.hpp create mode 100644 ex00/Makefile create mode 100644 ex00/main.cpp diff --git a/ex00/Fixed b/ex00/Fixed new file mode 100755 index 0000000000000000000000000000000000000000..e854d5d9bb48bcb963c7a36ffd783098c6b5b034 GIT binary patch literal 17128 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/11/12 21:14:55 by adjoly #+# #+# */ +/* Updated: 2024/11/12 21:52:16 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Fixed.hpp" +#include + +Fixed::Fixed(void) : _number(0) { + std::cout << "Default constructor called" << std::endl; +} + +Fixed::Fixed(const Fixed& cpy) { + std::cout << "Copy constructor called" << std::endl; + _number = cpy.getRawBits(); +} + +Fixed::~Fixed(void) { + std::cout << "Destructor called" << std::endl; +} + +Fixed &Fixed::operator=(const Fixed& cpy) { + std::cout << "Copy assignment operator called" << std::endl; + if (this != &cpy) + _number = cpy.getRawBits(); + return (*this); +} + +int Fixed::getRawBits(void) const { + std::cout << "getRawBits member function called" << std::endl; + return (_number); +} + +void Fixed::setRawBits(int const raw) { _number = raw; } diff --git a/ex00/Fixed.hpp b/ex00/Fixed.hpp new file mode 100644 index 0000000..d24e84c --- /dev/null +++ b/ex00/Fixed.hpp @@ -0,0 +1,28 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Fixed.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/11/09 19:23:08 by adjoly #+# #+# */ +/* Updated: 2024/11/12 21:49:21 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +class Fixed { + private: + int _number; + static const int _factBit = 8; + public: + Fixed(void); + Fixed(const Fixed& cpy); + Fixed& operator=(const Fixed&); + + ~Fixed(void); + + int getRawBits( void ) const; + void setRawBits( int const raw ); +}; diff --git a/ex00/Makefile b/ex00/Makefile new file mode 100644 index 0000000..c333ff1 --- /dev/null +++ b/ex00/Makefile @@ -0,0 +1,55 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: adjoly +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2024/10/25 16:09:27 by adjoly #+# #+# # +# Updated: 2024/11/12 21:50:23 by adjoly ### ########.fr # +# # +# **************************************************************************** # + +NAME = Fixed + +CC = c++ + +OBJSDIR = obj/ + +SRCS = main.cpp \ + Fixed.cpp + +OBJS = $(addprefix $(OBJSDIR), $(SRCS:.cpp=.o)) + +FLAGS = -Wall -Werror -Wextra -std=c++98 -MMD -MP + +RED = \033[0;31m +GREEN = \033[0;32m +YELLOW = \033[1;33m +PURPLE = \e[0;35m +NC = \033[0m +DELETE = \x1B[2K\r + +all: $(NAME) + +$(NAME): $(OBJS) + @$(CC) $(FLAGS) $(OBJS) -o $(NAME) + @printf "$(YELLOW)「✨」($(NAME)) Program compiled\n" + +$(OBJSDIR)%.o: %.cpp + @mkdir -p $(@D) + @$(CC) $(FLAGS) -c $< -o $@ + @printf "$(DELETE)$(GREEN)「🔨」($<) Object compiled\n" + +clean: + @rm -f $(OBJS) + @printf "$(DELETE)$(RED)「🗑️」($(OBJS)) Object deleted\n" + +fclean: clean + @rm -f $(NAME) + @rm -Rf $(OBJSDIR) + @printf "$(RED)「🗑️」($(NAME)) Program deleted\n" + +re: fclean all + +.PHONY: clean fclean all re diff --git a/ex00/main.cpp b/ex00/main.cpp new file mode 100644 index 0000000..7d05b6c --- /dev/null +++ b/ex00/main.cpp @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/11/09 19:23:26 by adjoly #+# #+# */ +/* Updated: 2024/11/12 21:14:50 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "Fixed.hpp" +#include + +int main( void ) { + Fixed a; + Fixed b( a ); + Fixed c; + c = b; + std::cout << a.getRawBits() << std::endl; + std::cout << b.getRawBits() << std::endl; + std::cout << c.getRawBits() << std::endl; + return 0; +}