| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /* ************************************************************************** */
- /* */
- /* ::: :::::::: */
- /* Fixed.class.cpp :+: :+: :+: */
- /* +:+ +:+ +:+ */
- /* By: bchanot <bchanot@gmail.fr> +#+ +:+ +#+ */
- /* +#+#+#+#+#+ +#+ */
- /* Created: 2025/07/16 16:07:34 by bchanot #+# #+# */
- /* Updated: 2025/07/17 17:13:55 by bchanot ### ########.fr */
- /* */
- /* ************************************************************************** */
- #include "Fixed.class.hpp"
- #include <iostream>
- #include <cmath>
- Fixed::Fixed(void) : _value(0) {
- std::cout << "Default constructor called" << std::endl;
- return ;
- }
- Fixed::Fixed(int const num) : _value((int)roundf(num * (1 << _frac))){
- std::cout << "Int constructor called" << std::endl;
- return ;
- }
- Fixed::Fixed(float const num) : _value((float)roundf(num * (1 << _frac))){
- std::cout << "Float constructor called" << std::endl;
- return ;
- }
- Fixed::Fixed(Fixed const &src) {
- *this = src;
- std::cout << "Copy constructor called" << std::endl;
- return ;
- }
- Fixed::~Fixed(void) {
- std::cout << "Destructor called" << std::endl;
- return ;
- }
- int Fixed::getRawBits(void) const {
- std::cout << "getRawBits member function called" << std::endl;
- return this->_value;
- }
- void Fixed::setRawBits(int const raw) {
- std::cout << "setRawBits member function called" << std::endl;
- this->_value = raw;
- return ;
- }
- Fixed &Fixed::operator=(Fixed const &rhs) {
- std::cout << "Copy assignment operator called" << std::endl;
- this->_value = rhs.getRawBits();
- return *this;
- }
- float Fixed::toFloat(void) const {
- return (float(this->_value) / float(1 << this->_frac));
- }
- int Fixed::toInt(void) const {
- return (int(this->_value) / int(1 << this->_frac));
- }
- std::ostream &operator<<(std::ostream &o, Fixed const &i) {
- o << i.toFloat();
- return o;
- }
|