/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* Fixed.cpp :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: aortigos value = nb * (1 << this->fract); } // · Constructor with constant floating-point number Fixed::Fixed(const float nb) { std::cout << "Float constructor called" << std::endl; this->value = roundf(nb * (1 << this->fract)); } // Copy constructor Fixed::Fixed(const Fixed &other) { std:: cout << "Copy constructor called" << std::endl; this->value = other.value; } // Copy assignment operator overload Fixed& Fixed::operator=(Fixed const &other) { std::cout << "Copy assignment operator called" << std::endl; if (this != &other) this->value = other.getRawBits(); return (*this); } // Destructor Fixed::~Fixed() { std::cout << "Destructor called" << std::endl; } // getRawBits() int Fixed::getRawBits( void ) const { std::cout << "getRawBits member function called" << std::endl; return (this->value); } // setRawBits() void Fixed::setRawBits( int const raw ) { this->value = raw; } // · toFloat float Fixed::toFloat( void ) const { return (this->value / (float)(1 << this->fract)); } // · toInt int Fixed::toInt( void ) const { return (this->value >> this->fract); } // · << operator overload std::ostream& operator<<(std::ostream& os, Fixed const &other) { os << other.toFloat(); return (os); }