d02 ex02 errors comparisons and _value

This commit is contained in:
Hugo LAMY
2022-02-18 18:40:18 +01:00
parent 46fd7395b2
commit ab0a2c4184
6 changed files with 23 additions and 13 deletions

View File

@@ -113,13 +113,13 @@ bool Fixed::operator> (Fixed const & rhs) const {
return rhs < *this; return rhs < *this;
} }
bool Fixed::operator<=(Fixed const & rhs) const { bool Fixed::operator<=(Fixed const & rhs) const {
return !(rhs > *this); return !(*this > rhs);
} }
bool Fixed::operator>=(Fixed const & rhs) const { bool Fixed::operator>=(Fixed const & rhs) const {
return !(rhs < *this); return !(*this < rhs);
} }
bool Fixed::operator==(Fixed const & rhs) const { bool Fixed::operator==(Fixed const & rhs) const {
return this->toFloat() == rhs.toFloat(); return this->_value == rhs._value;
} }
bool Fixed::operator!=(Fixed const & rhs) const { bool Fixed::operator!=(Fixed const & rhs) const {
return !(*this == rhs); return !(*this == rhs);
@@ -141,8 +141,8 @@ Fixed Fixed::operator* ( Fixed const & rhs ) const {
} }
Fixed Fixed::operator/ ( Fixed const & rhs ) const { Fixed Fixed::operator/ ( Fixed const & rhs ) const {
Fixed result(*this); Fixed result(*this);
if (rhs.value == 0) if (rhs._value == 0)
std::cout << "impossible division by 0\n"; std::cout << "!impossible division by 0¡";
else else
result._value = (long)(result._value << Fixed::_frac) / rhs._value; result._value = (long)(result._value << Fixed::_frac) / rhs._value;
return result; return result;

View File

@@ -30,14 +30,14 @@ int main( void ) {
// ">" // ">"
std::cout << "\n" COLOR "operator >"" RESET " RESET "\n"; std::cout << "\n" COLOR "operator >"" RESET " RESET "\n";
std::cout << "e = greater of (c, d) : e == " << (e = (c > d) ? c : d) << '\n';
std::cout << COLOR2 "e:" << e << " c:" << c << " d:" << d << RESET "\n"; std::cout << COLOR2 "e:" << e << " c:" << c << " d:" << d << RESET "\n";
std::cout << "e = greater of (c, d) : e == " << (e = (c > d) ? c : d) << '\n';
std::cout << "e > c ? : " << (e > c) << '\n'; std::cout << "e > c ? : " << (e > c) << '\n';
std::cout << "e > d ? : " << (e > d) << '\n'; std::cout << "e > d ? : " << (e > d) << '\n';
// "<" // "<"
std::cout << "\n" COLOR "operator <" RESET "\n"; std::cout << "\n" COLOR "operator <" RESET "\n";
std::cout << "e = smaller of (c, d) : e == " << (e = (c < d) ? c : d) << '\n';
std::cout << COLOR2 "e:" << e << " c:" << c << " d:" << d << RESET "\n"; std::cout << COLOR2 "e:" << e << " c:" << c << " d:" << d << RESET "\n";
std::cout << "e = smaller of (c, d) : e == " << (e = (c < d) ? c : d) << '\n';
std::cout << "e < c ? : " << (e < c) << '\n'; std::cout << "e < c ? : " << (e < c) << '\n';
std::cout << "e < d ? : " << (e < d) << '\n'; std::cout << "e < d ? : " << (e < d) << '\n';
// "<=" // "<="
@@ -98,6 +98,10 @@ int main( void ) {
d = Fixed(10); d = Fixed(10);
std::cout << COLOR2 "e:" << e << " c:" << c << " d:" << d << RESET "\n"; std::cout << COLOR2 "e:" << e << " c:" << c << " d:" << d << RESET "\n";
std::cout << "e = c / d ? : " << (e = c / d) << '\n'; std::cout << "e = c / d ? : " << (e = c / d) << '\n';
c = Fixed(6);
d = Fixed(0);
std::cout << COLOR2 "e:" << e << " c:" << c << " d:" << d << RESET "\n";
std::cout << "e = c / d ? : " << (e = c / d) << '\n';
// "+ - * /" // "+ - * /"
std::cout << "\n" COLOR "operator + - * /" RESET "\n"; std::cout << "\n" COLOR "operator + - * /" RESET "\n";
Fixed g; Fixed g;
@@ -111,22 +115,18 @@ int main( void ) {
// "++x" // "++x"
std::cout << "\n" COLOR "operator ++o" RESET "\n"; std::cout << "\n" COLOR "operator ++o" RESET "\n";
e = Fixed(2); e = Fixed(2);
std::cout << "e : " << e << '\n';
std::cout << COLOR2 "e:" << e << RESET "\n"; std::cout << COLOR2 "e:" << e << RESET "\n";
std::cout << "++e : " << ++e << " ; e : " << e << '\n'; std::cout << "++e : " << ++e << " ; e : " << e << '\n';
// "--x" // "--x"
std::cout << "\n" COLOR "operator --o" RESET "\n"; std::cout << "\n" COLOR "operator --o" RESET "\n";
std::cout << "e : " << e << '\n';
std::cout << COLOR2 "e:" << e << RESET "\n"; std::cout << COLOR2 "e:" << e << RESET "\n";
std::cout << "--e : " << --e << " ; e : " << e << '\n'; std::cout << "--e : " << --e << " ; e : " << e << '\n';
// "x++" // "x++"
std::cout << "\n" COLOR "operator o++" RESET "\n"; std::cout << "\n" COLOR "operator o++" RESET "\n";
std::cout << "e : " << e << '\n';
std::cout << COLOR2 "e:" << e << RESET "\n"; std::cout << COLOR2 "e:" << e << RESET "\n";
std::cout << "e++ : " << e++ << " ; e : " << e << '\n'; std::cout << "e++ : " << e++ << " ; e : " << e << '\n';
// "x--" // "x--"
std::cout << "\n" COLOR "operator o--" RESET "\n"; std::cout << "\n" COLOR "operator o--" RESET "\n";
std::cout << "e : " << e << '\n';
std::cout << COLOR2 "e:" << e << RESET "\n"; std::cout << COLOR2 "e:" << e << RESET "\n";
std::cout << "e-- : " << e-- << " ; e : " << e << '\n'; std::cout << "e-- : " << e-- << " ; e : " << e << '\n';

Binary file not shown.

View File

@@ -7,7 +7,7 @@ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) {
_energy = 50; _energy = 50;
_attack = 20; _attack = 20;
std::cout << _class << " " << _name << " created with number " << _number << "\n"; std::cout << _class << " " << ScavTrap::_name << " created with number " << _number << "\n";
return; return;
} }
@@ -17,6 +17,14 @@ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) {
*/ */
ScavTrap::~ScavTrap( void ) { ScavTrap::~ScavTrap( void ) {
std::cout << _class << " " << _name << " destructed\n"; std::cout << _class << " " << ScavTrap::_name << " destructed\n";
return; return;
} }
/*
* special capacity
*/
void ScavTrap::guardGate() {
std::cout << _class << " entered special mode Gate Keeper\n";
}

View File

@@ -12,6 +12,8 @@ public:
ScavTrap(std::string name); ScavTrap(std::string name);
~ScavTrap(); ~ScavTrap();
void guardGate();
}; };
#endif #endif

Binary file not shown.