Files
cpp02/ex02/Fixed/Fixed.hpp
2025-09-10 23:58:23 +02:00

77 lines
1.6 KiB
C++

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* Fixed.hpp :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: aortigos <aortigos@student.42malaga.com +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/09/10 00:54:53 by tigos #+# #+# */
/* Updated: 2025/09/10 22:01:18 by aortigos ### ########.fr */
/* */
/* ************************************************************************** */
#ifndef FIXED_HPP
# define FIXED_HPP
# include <iostream>
# include <cmath>
class Fixed
{
private:
int value;
static const int fract = 8;
public:
// Default constructor
Fixed();
// Constructor with constant integer
Fixed(const int nb);
// Constructor with constant floating-point number
Fixed(const float nb);
// Copy constructor
Fixed(const Fixed &other);
// Copy assignment operator overload
Fixed& operator=(Fixed const &other);
// Destructor
~Fixed();
// getRawBits
int getRawBits( void ) const;
// setRawBits
void setRawBits( int const raw );
// toFloat
float toFloat( void ) const;
// toInt
int toInt( void ) const;
// · Comparison operators
bool Fixed::operator<(const Fixed &other);
bool Fixed::operator<=(const Fixed &other);
bool Fixed::operator>(const Fixed &other);
bool Fixed::operator>=(const Fixed &other);
bool Fixed::operator==(const Fixed &other);
bool Fixed::operator!=(const Fixed &other);
// · Arithmetic operators
// · Increments / decrements
// · Max and min
};
// << operator overload
std::ostream& operator<<(std::ostream& os, Fixed const &other);
#endif