From c9a833bc008fcf80aa6a2b9739cba88a7da2dc51 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Tue, 15 Feb 2022 00:31:59 +0100 Subject: [PATCH] d02 ex02 operator < ok --- d02/ex01/Fixed.cpp | 6 +++--- d02/ex01/Fixed.hpp | 2 +- d02/ex02/Fixed.cpp | 36 +++++++++++++++++++++++++----------- d02/ex02/Fixed.hpp | 11 +++++++++-- d02/ex02/fixed | Bin 0 -> 14624 bytes d02/ex02/main.cpp | 36 ++++++++++++++++++++++-------------- 6 files changed, 60 insertions(+), 31 deletions(-) create mode 100755 d02/ex02/fixed diff --git a/d02/ex01/Fixed.cpp b/d02/ex01/Fixed.cpp index 163a98b..0b1d00b 100644 --- a/d02/ex01/Fixed.cpp +++ b/d02/ex01/Fixed.cpp @@ -125,8 +125,8 @@ float Fixed::toFloat( void ) const { * took here : https://github.com/pgomez-a/42_CPP_Piscine/blob/master/cpp02/ex01/Fixed.cpp */ -std::ostream & operator<<(std::ostream & out, Fixed const & fixed) +std::ostream & operator<<(std::ostream & o, Fixed const & rhs) { - out << fixed.toFloat(); - return (out); + o << rhs.toFloat(); + return (o); } diff --git a/d02/ex01/Fixed.hpp b/d02/ex01/Fixed.hpp index 42619aa..84f09bd 100644 --- a/d02/ex01/Fixed.hpp +++ b/d02/ex01/Fixed.hpp @@ -30,6 +30,6 @@ private: }; -std::ostream & operator<<(std::ostream & out, Fixed const & fixed); +std::ostream & operator<<(std::ostream & o, Fixed const & rhs); #endif diff --git a/d02/ex02/Fixed.cpp b/d02/ex02/Fixed.cpp index 163a98b..d6a1a22 100644 --- a/d02/ex02/Fixed.cpp +++ b/d02/ex02/Fixed.cpp @@ -53,18 +53,15 @@ int const Fixed::_max = -1U >> (_frac +1); */ Fixed::Fixed() : _value(0) { - std::cout << "Default constructor called" << '\n'; return; } Fixed::Fixed(Fixed const & src) { - std::cout << "Copy constructor called" << '\n'; *this = src; return; } Fixed::~Fixed( void ) { - std::cout << "Destructor called" << '\n'; return; } @@ -73,8 +70,6 @@ Fixed::~Fixed( void ) { */ Fixed::Fixed(int integer) { - std::cout << "Int constructor called" << '\n'; - if (integer < ~this->_max || integer > this->_max) std::cout << "error: integer out of range" << '\n'; else @@ -82,8 +77,6 @@ Fixed::Fixed(int integer) { } Fixed::Fixed(float const floater) { - std::cout << "Float constructor called" << '\n'; - if (floater < ~this->_max || floater > this->_max) std::cout << "error: float out of range" << '\n'; else @@ -95,12 +88,33 @@ Fixed::Fixed(float const floater) { */ Fixed & Fixed::operator=( Fixed const & rhs ) { - std::cout << "Copy assignment operator called" << '\n'; if ( this != &rhs ) this->_value = rhs.getRawBits(); return *this; } +/* + * other operators + */ + +//Fixed Fixed::operator+( Fixed const & rhs ) const { +// return Fixed( this->toFloat() + rhs.toFloat() ); +//} +bool Fixed::operator< (Fixed const & rhs) const { + return this->toFloat() > rhs.toFloat(); +} +//Fixed operator> (Fixed const & rhs) const { +//} +//Fixed operator<=(Fixed const & rhs) const { +//} +//Fixed operator>=(Fixed const & rhs) const { +//} +//Fixed operator==(Fixed const & rhs) const { +//} +//Fixed operator!=(Fixed const & rhs) const { +//} + + /* * functions that returns _value */ @@ -125,8 +139,8 @@ float Fixed::toFloat( void ) const { * took here : https://github.com/pgomez-a/42_CPP_Piscine/blob/master/cpp02/ex01/Fixed.cpp */ -std::ostream & operator<<(std::ostream & out, Fixed const & fixed) +std::ostream & operator<<(std::ostream & o, Fixed const & rhs) { - out << fixed.toFloat(); - return (out); + o << rhs.toFloat(); + return (o); } diff --git a/d02/ex02/Fixed.hpp b/d02/ex02/Fixed.hpp index 42619aa..066237b 100644 --- a/d02/ex02/Fixed.hpp +++ b/d02/ex02/Fixed.hpp @@ -15,7 +15,14 @@ public: Fixed(int integer); Fixed(float const floater); - Fixed & operator=(Fixed const & rhs); // assignement operator + Fixed & operator= (Fixed const & rhs); // assignement operator +// Fixed operator+ (Fixed const & rhs) const; + bool operator< (Fixed const & rhs) const; +// Fixed operator> (Fixed const & rhs) const; +// Fixed operator<=(Fixed const & rhs) const; +// Fixed operator>=(Fixed const & rhs) const; +// Fixed operator==(Fixed const & rhs) const; +// Fixed operator!=(Fixed const & rhs) const; int getRawBits(void) const; void setRawBits(int const raw); @@ -30,6 +37,6 @@ private: }; -std::ostream & operator<<(std::ostream & out, Fixed const & fixed); +std::ostream & operator<<(std::ostream & o, Fixed const & rhs); #endif diff --git a/d02/ex02/fixed b/d02/ex02/fixed new file mode 100755 index 0000000000000000000000000000000000000000..2dddd2103cd0815234605d5647659b14d4d7034e GIT binary patch literal 14624 zcmeHOeQ;dWb-%0ihy0~o8-rCo>IDq70k5^PY{XZx`dIS>l2Ij@ngsK-TCL@sth8eH zt&u4rA~N7bIA}6JoM|TGw#0mk;>Ljf#$FA)ROk<{`z@*Hmj0sPPlWbxEf*RD{ zx%Zykx2xSWv@@Ol!PV?L_k7-S&pq$n_wKv;a;SAnh07(lREW5;Ezu8=5Tx2!Nct^KgcF-{P8$j?8tc(q`MZm(QiYPA0h zDUMV&#A7|1>o&xD*T-W6>7n&Q^_$mkuJfl7{#w~@vQM(NZ{0@Xg2Kw7V%&oYkBbmq zaivS5#1_O`d0=VNP|KHIS{M3ht0b1VtOjjG3HslZp-0eQDfw@ep|2`K-%!T>f0Uue z%FusYhW==ocK@-A{5@sl|F#UB#>aAiImwBPDSfl24a??n|(t==3q3LN(_YKF>8;xyGCkSH=1T-XebZ})IuW`K{LtN zKwnFw(+UJ4yTVD+N`_-r3Ju6sLQR2C`<;=FJ3BYR6{v>Io@ifez>I{g$gZ3-kSghn zrgvKLRLk5JLLH!ORDLAjNHpBv66rESotw;v?DwbDf~QiiE|N%F(z!%D73#^=c2cbS zRhUuhi=h961%$b6;DOjcuh|hzrTe2K7U9vLJ|pr&F<3N-p@*hF92*d~H#M0X{WaqD z)|SR5v({hh-=yl>w}W2iuMLQ%?b{m~Tg-reqmx5kD7P zGT|1J8n@Pc4O4T4_@&m*uI?r^Ikzv9HFcSB(5oDDz8`4qp}C1mwZ2alf}l-Hmd`#Gr$Yfy|X52YqRdD#VC`zT81KM$c6mWAk^c@(JV739DlEj4^tm@_0^Sc2fsf zv)6Rt>RBB`jqqK>pPHOSx#kYSX(*=7NW7778iJ__iQi1PoA5&tuO*y9K6Oyy*AY&k zo*I|XaAe=%v)h+SGgi|P|+9h5=IE88|DDjUj0Zt*Bs*(8b z2&d3Y`6T`e!YL)Eyuh~^nRgHquW|InE4x7y!p?wf9OVhuIKm9$2je=Z_9YO>gf1X- z-W|txqWC?l_eyQDXMY>)9mhSZn}x{R|9iH-uE;(!9QI%OvOA=)Cu`bS8SdzCOSbyZUZy^36 zy-Eh^VT9u3{Kr9Y>3E$-*n%SOBZ=+!Wd@Ds<7+%}ZX8aY3SE%C?jN2xLgQ~|k!8mI z;p`F0F8gg@Q(9osu4C-*L3AK<>hLt;lR0VM`!NPP6M92Sre}dMJo-y{PvvxcD-WPg75}ydY z@Vv|OsJu_Mq8I4bB!p({AG)P$2c^^$u`;j1RXfvmcIwRnjK(3yBYpcQbf+HATg%%0 z%Gv>C4IIJUx}dss>jfE~aqVe(65SfN?}lG!bf2VheD>KJl<lek6jPXHNb=M(6e5$j@Ct z&r9z^^{~AgO^$6lH~J%22G`+p6rV#JpL4nRoGTNb*FTi;d0uvOEM&|0*i!>4K9edw z2W^2?^6{BKd=A>*g(}Bq(tel>jiE22C%R>PCS`oy$h5s?_edUY{_mht7@rJo(6Ql} zQ*yzV6Mn&bkM+Zc=*$?IG~M-(#m!9bm*}O9rhIbpbIe}_@|bdNfnFwUd-l?k4=iNu zO;})2u`>(duC|e1PtX?6r#hcy`)&Z^rubIOhZf#;J`v}jT`PU4B7&Ca-VSLUpD)c^Ay?=mlLPKpC1k@Upl zZ=05GJbnpGL1g}K(J#QZX^;Q3=dogc*0Mh*KXCZ-CJ^b*DsAMDG;&X9`n=}`jB?&J z&uX>a>hT&|xZ}7pK0H45pHLhSW^(kL{YT1d+d1;->l15mS5K&}YJ24Ptu!DxyXQUE zoj&im@3d#_F_{ke`9`(}IXxC*>FLak5Gl-;oSkDcm8J9x@Zj2sx88^L^{spX8esM>`y$w4W?rSiQ zkLUYy{y5@7_ViPv3-18on|-1OzX*OPFXLh64rF9gG?`2!Z}!CotY}{}>BHNWFR{~? z3=i~0h34&yC&HjQIYQ9GA0@EsGWRW~QKu=i7p||tm~ zKUM;sg?uw0y=%`ya_<9d##}+~E?t;Y;j*x>bol_E2D}yU1mJeSd043}z?FdG#0UH? z;2Ly__O$8%&jMP2v>q!8mw5)nJBiS1u3m0TrgKG_b^|zR^5UJ*V9p zKySs^%9s_kYk=1d9^L-M{`P{`3*Idycq8EL1CJK*V!dyI_Yio=61>CUO@g<-1n)KQ zDEDZ*i*07XGr+s81aB$g9S85~61=tGjetj!ZL!T}@b-cyw>^vE(hc4|@IF^U?;-G> zJU@3Fn<0Auym9D7Nw2ZW`&30^RrOchp(@}0d5u+TpPX-0)jYPqsHz`b*j5!xR@FCD z)ihMCZLIP^4)Tpvm2!V#5_S&54nVHVx(~SAPazOO_?So)+B3L_$Q$ungda9F(OLXX z;J1O0dR&Ne3GBJH0Qn+wUep|^b5tYJ+G!xP)hWxnKq%Lw0XMA3U=s@rlv(#Wx6Gjl ziQ+;P$~gJV^cpJUoh&(7N_ttSLb4YKJBwdVmI$Af&m!0x>_N4rO3m6&0s$5%~N5V_Ts6~I~SGl%Akb2cYbz-!s%s&3V&CH`3=YZ35 z92MHZaTYftzHV9LHN9Qy%jYt1+xqUodtNv(t zJYGwj{m5#(UGue>|1*&Lj$PE^Nj<**rs2;ud|$%_I=?Q_@LCNwYq&+jyEWXY;cg8d z)9_ghi<+lTP&fP5ZtF=8SZUvl{!RXx^&8U?3p^aC_t(^|Q&bU&hc ze+?u9O0w3s)(ZEfHgtqqLk*oFb8}72hMoA}7++W1S|Ltfmg*~lg+yTVU8}1k-JQ!< zr;;0Q0Gy|V^!bAGxsbj+HezxuM$~34;0cpxpNGKbg!sh8FZ3l-Hk8M^vYIT-1ySW^NN$_78ePg zPYUTPac-mANs@IpW(EHK=VZDC-c0noP)J`T_LZdPzmpfr^DLOBUWMvB@!Q!vMb*@_ zGq=C=9#nzZmgn&$TJd^77iJg!=%c4CakG}^@oLiY_XGaEcIg$?S=uFnFLHQwb(S6= z+2?grD&cZo%FoTWa{jMCLoU26))mE*?3L=TPdYaDzSt=3%*|Wc z-=mWj#d+SQ>BaX&x3n`ipLc`40{tCd79@j$_A#i?t1QtcJwb`f_eazYg6_pCNT1W3 z<=ax;Nl|s$+ggsd;AXv5I!}vaQ1QV|@qP4DEzk1?%b%6@=lb)Wq|a^lA}r+O|Ah9R z*YPVgebO70N^-9QwGEn1-yf;aJ`t5Vz~vRI1b<3ZRJ_4!d9Su}i)QS_ccK*~=EDvt z&)Rty({|dmoyD5<0MRQjE;`SF%JP(!A6XuhxZHC=?Jp%=k_s+A)bcfY9+rD1ka$_s zi{r2#0jIci>vm~=q4H)K`+w{%9p@WBr*Sum#{E_)uWUN6cWXO?x?f(+OlbPSs-UFM zJ{pxf@LPeWJ$~+#L|mSrb}?SX`T4B2)2-v2)C$i@I&0_QyJh6xBm0<7_=6bj(NbBe z{9d=~+#edvDh{*V8XHxjFW39KwruGPb(viajjbU%{uihn#1TEKkxu0S zY?89s%A;xOI9gt56ZI?-5@yR?IL_9K1AXaK z6mI2=)@q~0NB)9A$9XoVxIF)-J*o}u6!Lf+1}2p-cZCOfI}3*v2V>IOovOLG<@8k@)zcRBi9GWQ@l;1=qC+d>Jwfbt z0{ism6LHe8jMID+Qu$Vgn_>uIb{yKAqo=(J)bvHIj_?CC(DF28pe{G?Tj*n&9(p)z zcC|He);UIulH${M<@a<%8I-3f%Xz)YN+2uw^ymNLbZJ2YbZ!!-P3eUdCr#sVGj{+M zWJ+^&1~Wg9d>U5A@QN#vZ-}0$v!3lgd02K=`pr^ke4Ft#be4%4N``M;=~xd0&M8Z-e*mxB>lm#Hjof2blT`9qpeBQbi%Ql(Nu2K1ax@2af-d_@o#?H@`Y z4rzz+cp&@9`n-SF1Ueo8bNak*vt2jH`;N+*vcYwNcj8BTe%wCq@3iZU%r#n={bxCb z+rg(jM8Ytf zulzUqe_f={`)$?w1=&YQ<0w3SO!_-ioc{B^T)iH+X%^J5*#D!T(>HN$hW9D>|BX1$ z*bKMN@MSRQU5WL1|HHmQX|P;5{nx>u++%&-59I&n;(?+2hYH){JeUNH`k&KZ-3<)? z52nAyvz#R2!ukx~0nMqO+h6o4jeQE_uB^xK*Wfty`8{!;PpOn^pAFLZkS+F~-(wH> zlteWdcNCwaPSp?bBas?H9EJ5w2aT$1&Ivj9ouV^7g;nYe5L#z8;m7^vyrBDweODU# dsy8a$;(^m-ZkJ`3qf$!$E#0AtB84JU{1?Uq%gF!$ literal 0 HcmV?d00001 diff --git a/d02/ex02/main.cpp b/d02/ex02/main.cpp index 13402e6..26ecbfe 100644 --- a/d02/ex02/main.cpp +++ b/d02/ex02/main.cpp @@ -3,22 +3,30 @@ int main( void ) { - Fixed a; - Fixed const b( 10 ); - Fixed const c( 42.42f ); - Fixed const d( b ); + Fixed a(10); + Fixed b(5); + Fixed c; - a = Fixed( 1234.4321f ); + std::cout << "a: " << a << '\n'; + std::cout << "b: " << b << '\n'; + if (a < b) + c = a; + else + c = b; + std::cout << "c: " << c << '\n'; - std::cout << "a is " << a << std::endl; - std::cout << "b is " << b << std::endl; - std::cout << "c is " << c << std::endl; - std::cout << "d is " << d << std::endl; - - std::cout << "a is " << a.toInt() << " as integer" << std::endl; - std::cout << "b is " << b.toInt() << " as integer" << std::endl; - std::cout << "c is " << c.toInt() << " as integer" << std::endl; - std::cout << "d is " << d.toInt() << " as integer" << std::endl; +// Fixed a; +// Fixed const b( Fixed( 5.05f ) * Fixed( 2 ) ); +// +// std::cout << a << std::endl; +// std::cout << ++a << std::endl; +// std::cout << a << std::endl; +// std::cout << a++ << std::endl; +// std::cout << a << std::endl; +// +// std::cout << b << std::endl; +// +// std::cout << Fixed::max( a, b ) << std::endl return 0; }