From 8918b348e046da1fdc203397bb2f3f504d941a17 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Sun, 20 Feb 2022 19:42:37 +0100 Subject: [PATCH] au milieu des tests d'heritance de classe --- d03/ex01/ClapTrap.cpp | 38 ++++++++++++++++++------------- d03/ex01/ClapTrap.hpp | 3 ++- d03/ex01/ScavTrap.cpp | 41 ++++++++++++++++++++++++++++++++++ d03/ex01/ScavTrap.hpp | 6 ++++- d03/ex01/main.cpp | 27 +++++++++++++++------- d03/ex01/robots | Bin 29552 -> 38080 bytes d03/test_inheritance/Base.cpp | 41 ++++++++++++++++++++++++++++++++++ d03/test_inheritance/Base.hpp | 19 ++++++++++++++++ d03/test_inheritance/a.out | Bin 0 -> 17992 bytes d03/test_inheritance/main.cpp | 39 ++++++++++++++++++++++++++++++++ 10 files changed, 188 insertions(+), 26 deletions(-) create mode 100644 d03/test_inheritance/Base.cpp create mode 100644 d03/test_inheritance/Base.hpp create mode 100755 d03/test_inheritance/a.out create mode 100644 d03/test_inheritance/main.cpp diff --git a/d03/ex01/ClapTrap.cpp b/d03/ex01/ClapTrap.cpp index fb8289c..5c857fb 100644 --- a/d03/ex01/ClapTrap.cpp +++ b/d03/ex01/ClapTrap.cpp @@ -6,12 +6,24 @@ int ClapTrap::_totalNumber = 0; +/* + * assign values for default or secondary constructors + */ + +void ClapTrap::assignValues( ClapTrap & src ) { + src._class = "ClapTrap"; + src._hit = 10; + src._energy = 10; + src._attack = 1; + src._number = getNumber(); +} + /* * default/parametric constructor */ ClapTrap::ClapTrap( void ) { - + assignValues(*this); std::cout << "claptrap default creation without name\n"; return; } @@ -43,12 +55,13 @@ ClapTrap & ClapTrap::operator=( ClapTrap const & rhs ) { if ( this != &rhs ) { - this->_hit = rhs.getHit(); - this->_energy = rhs.getEnergy(); - this->_attack = rhs.getAttack(); - this->_class = rhs.getClass(); - this->_name = rhs.getName(); - this->_number = rhs.getNumber(); + ClapTrap::_increaseNumber(); + _number = getNumber(); + _class = "ClapTrap"; + _hit = rhs.getHit(); + _energy = rhs.getEnergy(); + _attack = rhs.getAttack(); + _name = rhs.getName(); } std::cout << _class << " " << _name << " assigned\n"; @@ -57,19 +70,12 @@ ClapTrap & ClapTrap::operator=( ClapTrap const & rhs ) { } /* - * constructor + * parameters constructor */ ClapTrap::ClapTrap( std::string name ) : _name(name) { - ClapTrap::_increaseNumber(); - - _class = "ClapTrap"; - _hit = 10; - _energy = 10; - _attack = 1; - _number = getNumber(); - + assignValues(*this); std::cout << _class << " " << _name << " named creation with number " << _number << "\n"; return; } diff --git a/d03/ex01/ClapTrap.hpp b/d03/ex01/ClapTrap.hpp index 354a24f..63eec37 100644 --- a/d03/ex01/ClapTrap.hpp +++ b/d03/ex01/ClapTrap.hpp @@ -10,7 +10,7 @@ class ClapTrap { public: - ClapTrap( std::string name ); // default/parametric constructor + ClapTrap( std::string name ); ClapTrap( ClapTrap const & src ); // copy constructor ~ClapTrap( void ); // destructor @@ -42,6 +42,7 @@ protected: private: + void assignValues(ClapTrap & src); static int _totalNumber; }; diff --git a/d03/ex01/ScavTrap.cpp b/d03/ex01/ScavTrap.cpp index bbeff9b..27ad71c 100644 --- a/d03/ex01/ScavTrap.cpp +++ b/d03/ex01/ScavTrap.cpp @@ -11,6 +11,16 @@ void ScavTrap::assignValues( ScavTrap & src ) { src._attack = 20; } +/* + * default constructor + */ + +ScavTrap::ScavTrap() { + assignValues(*this); + std::cout << _class << " " << " default construction with number " << _number << "\n"; + return; +} + /* * parameters constructor */ @@ -37,3 +47,34 @@ ScavTrap::~ScavTrap( void ) { void ScavTrap::guardGate() { std::cout << _class << " " << _name << " entered special mode Gate Keeper\n"; } + +/* + * copy constructor + */ + +ScavTrap::ScavTrap( ScavTrap const & src ) { + *this = src; + std::cout << _class << " " << _name << " copied\n"; + return; +} + +/* + * assignement operator + */ + +ScavTrap & ScavTrap::operator=( ScavTrap const & rhs ) { + + if ( this != &rhs ) + { + this->_hit = rhs.getHit(); + this->_energy = rhs.getEnergy(); + this->_attack = rhs.getAttack(); + this->_class = rhs.getClass(); + this->_name = rhs.getName(); + this->_number = rhs.getNumber(); + } + + std::cout << _class << " " << _name << " assigned\n"; + return *this; + +} diff --git a/d03/ex01/ScavTrap.hpp b/d03/ex01/ScavTrap.hpp index bcf2198..4329b64 100644 --- a/d03/ex01/ScavTrap.hpp +++ b/d03/ex01/ScavTrap.hpp @@ -9,9 +9,13 @@ class ScavTrap : public ClapTrap { public: - ~ScavTrap(); + ScavTrap(); // default/parametric constructor + ScavTrap( ScavTrap const & src ); // copy constructor + ~ScavTrap(); // destructor ScavTrap(std::string name); + ScavTrap & operator=( ScavTrap const & rhs ); // assignement operator + void guardGate(); private: diff --git a/d03/ex01/main.cpp b/d03/ex01/main.cpp index ce39b00..2fad422 100644 --- a/d03/ex01/main.cpp +++ b/d03/ex01/main.cpp @@ -49,17 +49,28 @@ int main() { ClapTrap robot1("robot1"); ScavTrap robot2("robot2"); ScavTrap robot3("robot3"); + ClapTrap robot4("robot4"); - ScavTrap robotmp1("robot4"); - ClapTrap robot4(robotmp1); // PBM : it says it's a ScavTrap but it has no guardGate()... - //robot4.guardGate(); +std::cout << "assignement 1:\n"; + ScavTrap robotmp1("robot5"); + robotmp1.guardGate(); + ClapTrap robot6(robotmp1); // PBM : it says it's a ScavTrap but it has no guardGate()... +// robot6.guardGate(); - ScavTrap robotmp2("robot5"); - ScavTrap robot5(robotmp2); - robot5.guardGate(); +std::cout << "assignement 2:\n"; + ScavTrap robotmp2("robot7"); + ScavTrap robot8(robotmp2); + robot8.guardGate(); -// ClapTrap robotmp3("robot6"); // PBM : assignation doesn't work... -// ScavTrap robot6(robotmp3); +std::cout << "assignement 3:\n"; + ClapTrap robotmp3("robot9"); // PBM : assignation doesn't work... +// ScavTrap robot10(robotmp3); +// robot10.guardGate(); + +std::cout << "assignement 4:\n"; + ClapTrap robotmp4("robot11"); + ClapTrap robot12(robotmp4); +// robot12.guardGate(); goAttack(robot1, robot2); goAttack(robot2, robot1); diff --git a/d03/ex01/robots b/d03/ex01/robots index 327bcf2be42409ba26070b92268a8e6ec8d4f98e..b7594480abe17864d575ba8230c2bc9ccca1f51c 100755 GIT binary patch literal 38080 zcmeHQdwg6)y`Qs5+9plYJc>jpup-44X-LvnczV)iVIyq~O^X$U?KauAt9hB-loYLm z2Dn{9AR=gx%e}eEg@_2nOEDr@0_|;zq6ScJ6dw_JoJhq01*)RC-`~8>>}D5ey`TG6 zCZFug{9g0>{buHO&d!{(bG2{vg&xadDtXuijB0&_HV27M#_Vohm9Ppno7wDSb`qNb zNGASmj-gzXRKCq45GtP~=`xTLU%$lndu-IGZd1nQ^G`Qd8d6StZn9-jaTLyJUgo)ym|T3vl{9bH-wwo+84K1EML5Q zX-TBHq@3G54~mdWFIu~S{q~f1{?@kthG&D<{L2-+yB=Kshc8|bB)v%ol1DU@h+esq z${)l(;e}oK>_Zl>0wQqpdUIE`SAXu|MZTY}=D-vm_d#G`3ix-?Kq@$Ck_vua8aaPV z18+|wzXXP-lK<~%+Fh7N&S`K=DmllefuE8_{+u-Q-$(V@jhJuaNb?XDZ+GT+{&UJP))Y=$s3PwZQQD0jdT@eV>wYQg*m6Z!FFom18 zR@Y6HT^pnZ!tK6B)qYx{6k4ngtS^NgD+22-PTy+n(f~AFUl#EBxOUAA5nouBKFdp_ zMOB%PtADYf|Jkn9FhJR!&Wt4>5HbuA@6!dVWa|d!(KVhz!255y=Hj|_7uPPKK>$Zq zgqtG)SRPth-4u=rzo0{dfz6?<;if=cFj}{bMo)Wtpe58AX>JNOgrhqG+e-!e(e{3@ z)`#|WKODOu5CkihN-K_54YaGckA5O31Co4q?6#=Uc+BHL3aE`Pt!r+J(%f$p(;lU* zb#;LV)yi04L(`Svrux9TP^7IfL}Ya;I#7>ePPd1n=xjpBP|+9+H?fOWtqLqDDP0_HX-< zuOV{IV02?ZGM|0mb7(M=wa9vO(Ji>O%3xoR_0My95BnD>Z{lhjT;g8g1H2?Yju`Oc z4Y-QuWEI_Ks8rlx^Wsc=%23biUIPwAby{e^$uBCE8gQv1M^zYbYFj1SfSdPmegjTA zsZ?XY)jcQSHX3j^T&GP2JV!$r+h)MgfjYGq@LUaLtlfaiTYHY}FyQhQoWpk;@VSPZ z9s^GOtx~T6FHk__eFogTPWKz|6Ab!22E53C4;XN|M^$OafFGxT$PXIuVgo*6z)v*b z)5U2I{4*YSWA4d+^>-ecU&r_eH<&+DyJr;swvc>S|fpG)!?m4V|<9$ zKTdTD3FCWseI?Z?6pZ)r`Z-jm5HQ}u>*Z9ZOUif$ub)A6x|EE!puWK$d(r<`!7dvB z#+;qd$p4tS`S-^a!vDya3>eP6;JSR@+*7XQ9K`Q@4_pMQVob=Jx69^OXK|7|g)rn@ z_CDmzSMq)XVpBhbFy!UDt2`Q?Wq+!UJ$;2g_PoFIg^8N=)x$%3Y@7LqAGdin+;cp} z<#DHC#pG}g(eK+*qRj0XaNr03`Sckr8XzNSh-W`WfXT5fJ^Qw}#5BI+oc@|uc@~@S zKmO{+{Er{W@LLD`PyZuYpe4+d5|a6;{f_hZHld-mBJS*~;L-zG-vq?EeBYGzi2juu zTpf6SbROE|kL^6-kF`xaMmG-e%o>|H*5BdFt~CI!+2ikOoA7t<90A#Yvk{}q-?fu~ z1I}y=rEzX2(9WIjkpI=qhd+MSB{t!h^AI7rd=vhduMfOOoHsCJQRs^ua1P?amXhge zm#LpK#RXG8m{xhg)VY7t<@@}xr~R=5Q2t@QAdzsn@;7fjs#li$UD@Fm+%qR4(k z=J#tqZ#|X$LJMg>27_V$U((r6hy?rRy7nX5rtW{2N!l-%xcw)+i~ZnBwx2|i{kT$1 zvHzMw`M4ks``)3ciW$`5j}4Zh_nn_`1#Y8qd`68;xZTdDlyubk{oQT5ohzZ1^1*KB z_9L=&lH@#xn!kJS2nFWY;6jqxE~HX9K8H&kq)VT}T)~5Mt@L;A3bzF= z*x4=`p$ixq@lqp2q7f>`=ZQvk1MS>l@b(jZ_g)Tv<5ag14tVBmZN?x8b_zrzvqU4s z)X4n=>bi}}@e@TO`9!+hXrxp$!r^OiotKUp<(LuaUg2+o&AhBs82wGIkjB3yHpaFNc2_ zp;L7p2kd#%^&ts%{tSR-G<)qG9dCjn0(goVRm#61S3ilQAzu`+K>Z?XC)gy!nvZ8V4ZE^gA^M6>sKaQ>cWv zk0cRt?!qZRLHt)&SJ(U(m7+Q*a_2gC;)}xgMHz^avBzV$8|rR{TVvNn@i~4v1y6Y| zvX{fV3C?5Yb#F+=t1jtqo*>YV@x>&Cs72{S$@rHfO$5Qu6Eu9Z0(VnCzVv#cdLrO? zNucLw1@gFdTe3hN+X=G5LhAvHL?CwLfJoZJqNWm^gQq$j0oqp88mQ-jkt&tug6 zuO<2IAcX;kpf6e}o4+SDIGh@szIh&i&Pr~cN1-r5i&G2y6(3krhHmEP@t~Rz3poFXa-tkQ{jyLFuchB0HG?sB2~(^xLs{ zugEyx+vv;$GJdhR#318*HUUg&bggq9A!gYq=lftX8NU{07}7Z3uH;5}WNR>_alRj6 zHBB_SP#DJJ-Clw&CcxCVa)F@Z;!e_yNNyenuY4Eol}0O{&~2Z|p*#DXr!Y>seDCqxxZ99c+Eu2cWB%TQkXQRE*otVu{DRB zjfz9c-Z|>{l0g&BsiX}&OzSPK5%T-2E%a}L{%z3rfR`)eoD4DOVOTS!WRLOh=*~Qi z8BrFELbDO)l|zch)KY;X|tNA>k`WV+LHlE-Z{ZrV)D-%bxfk`D!mP0@S&` z#TE!bBPN^4aEWB|9(yojj27i8K)N+Z;0AfK+kF83x2p4nnc#mvC*{2B=Tm@5j!kKmePK#idUY1dCDR ziE|b9fQlPubF2?yxa(;(=p{kqG~r_8&K+8hn28ieDPBDQfIFND zRIq|%blBTYi@rl9fDRht4*8pch7kd1VbA%U#;7R*zOJ1^&chm^X2{Ng_|r5I?$a1| ziol?eu9nq~P5SbN`jwXb@lxX24lXr)Ho4R1U1I1w#i1mPI#x1h!uc)NX4u(+?*Loe z{!QzDa*Fe2P`mqSrs3-=-EY4|BDx0|-EaI6Wv*oWRhX)v z*AfN!qPq`#(uhGW1HD-`gcZgO<}{5K$RKB#sW@kRE`J1?Tn{a$16Qdz|QLmKaQ@j^=1 zAc34mKp~}b2Y0qtvAH*0%wwSh*Z`d40=oQFosUn(@JXcIl|1Zm(qS7R1y`pM0?9kG zBWNUc9j#}NZ^G?x3h)wu7820LW79P@%<#^zqAmqfv0kO72&_4@x=z7%5l2AbG`{Yck6hVoFNA9uR_V3=)dmNJ*6vmM?Sv^N;E^E5396b(@+UMPt8RQ>ZGlq2#D9jUAxVLMl8LuMI7 zR2D<{UM++fcq(flRn9UkI_Bwz5y&6;0)hhJf zo($y*bS6T(2B{I}PEreZ9Sg8j;$A z`aQybqn6VHbyeq3S&x&|&OuGI+aRK{2>(aMlrkL#p2}K??T~+j#_a|XmBontFD<0S zz*AWZsd6sRLbe%1R2D*-w2(~(p2}K?-}#Fs+Gr3_S%m*Zz)Md|3IBipowB0F;H9z% z|9{eWzl%=@|33hQlx~FonQpY_0qCZ;Xu!!U@P@-(etXf=xW(qU#0!8;Lo?k4peXeP z;3cdQ#Gf>x+j6b8?W)Z$09|c|osAk>VPL5&Lids1DyNhhcq+$#NpWOU;};ruDvQwV z0MA`AzS*_fh}kb1n%<~sQ^)L6*4g^9wn@`+AL);Tn0>BR&TA+~W##@B+c}_#iVY$v zi*fhXZm3jxBkGiRy+$`s zWAIX0#Ow1l-tXcQ;`MA-x)HDGH4~|#h}Sb*z%k#hFGwA&k04qrceK%^zWiB&hgqZP6-E-fi;0f`&NjI4;em5w-r1-s5!{r@t zh5;CX&d%$OyiBVS zU2S8uNY*u}+(rPsNVfmyAfX%fHKW2@tbmIU^oYi&mGzw?@maN)cYPY;F04VjF4&f8Fpx2GDNa1L{^c>W6u3+@Qe`iuF~ z#r4PhNmy?me};@O*V|tv2(9$vF6u`L`%w&OO3sr6;nQjEDQbOM%qMq$W>l>A&^8e* zYu^n%sjInN)y!qnq*6}8)Zr`7A&pU9;_f@>oTm}Syy06g<-mwGrh3hx9hb)wmVn@7 z$BA=k!_I|R5i!<>uQ}8Kh24v%K;zR!77kS-8nwA`t%dUxgyj`j88 zLel|>n548p<0G9x|6?o&xWg6WiJo7s{N(EH^S^LDW0jXy$9_?{p*r?v<@(ClI~)An zi?0Q^cJ-pa(>n&v%|C^d$N!!YJ*Diqxu=kLwmSCu>e#DQv6m|+=l#y#xzF;S{hPKw zVz|!w^yQVGsl2@Mipqfbj5UA08+?@W_ZIY<3M6ehO?zP41JfRu_Q13Uradt2foTs+ zdtllF(;k@iz_bUZJ&?)+7Jg%;gtazrZjP3TtXyPEM7ER#Ba!gdrch(3De5gdCr5yn zC4kEnctrwui2|RU0A8xVWo2wtL$GCiYp{jYp@1KuYVp>GwglT6qTV|E^i(w5+~mD7 z9NmT=wedCu8$&q^c>M5ETU|6%k4jy0OPCj=k_02V`b2hbQ(NQaP^*`n`0289mn?7m zG|$T$MSWT0wlhO#1|{wso-b`=XDaH&7cg%y8V%Nc4szL<-nw901V0ev<%CNbnYX1m z+!T#?o40uDgN?zhA?OusYHE&3F7M_Lv4jLeS)(@$S{MZSP*bRN>y8sYUD`;-yicZW z;i%w{8edK|=51(hj)WqvRv?p_Y0=T(=R#7)qg3ksaca%Ht)Z4+xE21wuZo2lws?b0 z_1>-cDIq{oxUC_)#dVrsRg6dHyZ6hh6|JocZs+6A9e2%5Vt}c!rw0#u3%`8^3nDF{ zx^S?;+t^$m@?L~rP4ZqG3gO4G=(#xS#Ef(4w-P^s^2no;lezK|baC zAs_kBPaqF@DVEuaA-9HdZ1(44NzX>ku!u*$ypfMp)E?wDSc9$rT?_J!$a|2tBj1C( z7x@VC0ptuT>;puPb^TGILq3Lj4>pQtk=|GoEJe<+=GjjABOfI=9*CtMQ|!Rn=|bc- zp7QPmybpN|>Mhv8Xh%MQhvxf`Z^8or4suGg2SmxbY8|uM^Q{weXU^(@FY*Dyn?B4L zoSZz12&!i06RZ^fneZp6LFqL7SK;6O0c-^y%getoulVD0XJ0w1gMI9TbI(|E+NpqY zSq;eh(N`4&sLad1-m_}Xj0hT(_#2TQ1Rk%dyZ8%TJb|sNYF2YiXJ*h(^kpc0Ne}v8 z2;B}N&#bx3)@^v=5K@^t0|pSyYW&k!;B?XSbWxCvD!ShEbpHyvJs3M&-lOU1_JeLW z#ulO{%N#T4GG^x}11MspF0!{-06*JvBL5VB%N1 zemqQgj8%GYRLj5A#m~doCVV>nrSE}X{~maH6_MoAdtbW!ZEpLw0^fo;RA%BET>L}8 zPdt)(oKXLs34AI1^DxSprJpgz!Dk@E9S5Z6LD0QQbn8vJ2NLMM2)Z8lb2j{z* zm_TlEd{;< zv1l!5b^m#)p^}*A>xmzmN|z_#H)?#8_#r>lJU}%*(&oQ=M0QQ-&|k+nwplTX^oL2$}d<2Kby_| zY8AaQo898cMfpij!GGqm-+782&1G+Ua#6lDWA0nI?1_wm?m28Uqv)BstfJrKvEeN5;XHQzjDoJY>|bXTePb?r zXhtr|PtTb9>$z-lM!_3%*=;k6ZpdffnVF074`&wb&u7oi{J!V8e0EPxE>&`RXZ(7e zHJP6aj@t@yA@A;jTtFTz$VCf3=H)*WG|Pm0(*MMN`Ll-o0py~xY26)k7%o_VJLd|=+ms^ete9gllsc4k(PE%&yvPOJES z%euquUFzROmbdtm*IVq1S-2+LVP(B!S$)u*F8L z;!ck>;Sx<|EI_3fgQwTZ!j06OmY1KTZ}4dcY$?+(Ctl&Eq}b!UkK5q0&Sy~PjND&kvU9t$U&~}a&R+6j4!bU==$#yPXHG84_vhpS{#Xvt z{3r+W=H}UJ-B z&ISC9Y@(UWhMavlYwwwDeL1C^Uqa3^vnDdxm$R3AD~COqT{M)#exIF-^6S~TfOqEP zg63w@=h>XK-p1)-J3A?6J!r8ftgK&I*0AZvMb^n&->g4btfUZ=^cz;U z2g82R!yfCKNj^HsnpgbEPKz}!peujYeU^2*D+;~_o&mKWe7nW&wX&YDtOpYCi>(i{ zc3gO}eqynmxE;RB%6ipe-?H$a&vVwIS3K6Wo@Tf2&@Izx+5^)bnD)T52c|tR?SW|z zOnYG31JfRu_Q13Uradt2f%ou0N0H4bCb0QH$u1OmkIZW%UagfR=YPlACM5-@vo_2+ zovlGBS7cZyw|NOa-^|m1ZS!26ZK2LN<7@fAcsZ6ab!LLI)8-Ib*QG>zEtKB;$0Sw- zP|vU_V`^=2G)vUw_7JO(cx+kl^i`=JU%LgQSi(I>P20@4^k6+nSijIc2aSrs9@~%fN25idTv7<5;Ts zlfgc~)cHV(^oS-h?j*vC*=S0*dk$P8y^5kP^s^{tvezbEh$xA8KGohLjxJ=h&1@#D z=pq#|+EzBx3SKE>w2f@0Y6+)pV>5jk6%WG}iR@n$mm`2%H~~o=R3Y?ZY?q{0lkyL3)0#>7fwpDMr2IhJux5IJ zR|*+zyPAo9Z-o4#uG7i>nYYX4PB-y36r)w)hY39ria>{8h_|HAqIVtQE)l+7!Das{ z`bG|y%tjUmJRf&~bdHOe{#(i!llm7(6sf!IrxH+YMfk= z2Hwu$b6AZWpZwVu$higog&uT5zKxQbz6N?4Kgsjrn`z{~B;|LUYI7mV5A=mC)j74t z1D;C%k~HwErJUkjLOzBcPj{rDe>n}j0{wU@#uYo&=KSiq^9jHy4kXXh`G`yTi2vSQ zf}S(s<1>6bsG6JKt;WfzHU~Z|QQwpBa`_bg zie!HE6gTIuYmG*tZ8+Agj@9FF?XBSmp4tvX8v}I>%}t>Qj<>CER_4}6n_DA+U|Tz@ zYi?|52;r>)9CMqJBCrL12?SePgF6Cv5WIB<+tP|R4FdITjg33NV$`??6G#Jr3)fYy z@dbQqtLX6U08XF}`1}&+uUf|fRi9d0xu$v*aO8f?T%QQw$9HS%KXKuOwLTn+UAc0# z?-;F(RS0{6z|J?sbK7yE?vDGb|UcOW=s* z^e1(vJ^Gst?ylI{T*=?KSf?9Vr==(2m69%HYJ6>JvWt%H$Zaxms+U6b!Dx`2b+K0O z?5&}wkH6Q!-BcSjPE1b_Ky2DPad>p~Cvfa?J&xVR>mtsvw?5#j zT^7J;<_Rq)bi6nxoqNn}Zw1<0i`chv8Lk{<@+^DZA*;%L$2jZPUVO|4pfABYJE`U; zPPh+N*ZHQ5tb}1vRxVy2yENF)7K*@Cus5)N%_VJrbsq%?BaX^L+o$wF zZF57!_t~l7sGjpj7r-dOBuJxU+Y^RZc_7*x4K_&K2xs(1`Q~5*Qwn~@yKm{|0j6W} zfTHknOtPRcWMRfG2_z{Ffw-JweLheZY-kAJ0^b;J!n6gL06QdRBy+BLVn0w6q#G08=^(mNkSo*9Gb#ZQ=&a)Ii6;z*gMK z;Z3wib5pP(9NiJvUOMHPLBlGX;7@LiQl45SfID6*FkXR;M9le~;tI{Lup64L3^&yW z)`cQ%jUlvxyHaem@UEbV_^x)*9af?)DdIIG9K*20O@;6uzk}lU!qNpQz6Z88HaCe5 zp<6W50W@L7?MPD3{}Z9^=x0{A-Pf4VZF*iM4xQAo&gkA_avv*+>}bRn6y(uXk#AEa zy!{$#ZDA#N7f+|;5FOCMcGLG98jBH~i^*fp%Pvp^7fstEn z36%hFxT*(fT#%>s!aJ6_@_O2#jo~9X=v=K2`i`zqNv#g5(#OZeQ^$`>zF__*Y6gwJ+Nt`E4nf+<{eo-M-?#2{0N{q#sXe zy)a)?)%w1~^0ri&@)-V2ey`;BN`C(Ct-&C{SnCq$)+Bzl|F=gjz+|ZfSxK+>WR-nA ziC^s-57>f2J)ffJ$ya9TL&cnbdVje_P_32YQ1K-5_b2hIedwB6!9nkWn<<%}*451R z)qZvFdcidy$FY*3`d`(DP%!z`zIM%Jf}$d+!K5mC24s2oS7xgHp@WTr-zzfxsoGch zZ-K#XhvrxNPLAYPbV`7#tNf2ZsJTHjYCnBK@~erV#;4*_sjyzn6p? z$u`PV%$4nzCczc|#w55BXXYyQn56dSMa`zcfixfg)%aI-tN4LsYgc!aRqD7}l=}4p cW1_CwRdh7Xwe1RseBq6vLI>lSDXGf-7bdL=-v9sr literal 29552 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 ZNz_%lqDFh?@%f*>Nl=^?!w^$t{|TT9wN(HB diff --git a/d03/test_inheritance/Base.cpp b/d03/test_inheritance/Base.cpp new file mode 100644 index 0000000..5447882 --- /dev/null +++ b/d03/test_inheritance/Base.cpp @@ -0,0 +1,41 @@ +#include "Base.hpp" + +/* + * default/parametric constructor + */ + +Base::Base( void ) { + std::cout << "base default constructor\n"; + return; +} + +/* + * destructor + */ + +Base::~Base( void ) { + return; +} + +/* + * copy constructor + */ + +Base::Base( Base const & src ) { + std::cout << "base copy constructor\n"; + *this = src; + return; +} + +/* + * assignement operator + */ + +Base & Base::operator=( Base const & rhs ) { + std::cout << "base assignations operator\n"; + return *this; +} + +Base::Base(int i) { + std::cout << "base parameters constructor\n"; +} diff --git a/d03/test_inheritance/Base.hpp b/d03/test_inheritance/Base.hpp new file mode 100644 index 0000000..3b7f308 --- /dev/null +++ b/d03/test_inheritance/Base.hpp @@ -0,0 +1,19 @@ +#ifndef BASE_HPP +# define BASE_HPP + +#include + +class Base { + +public: + + Base( void ); // default/parametric constructor + Base( Base const & src ); // copy constructor + ~Base( void ); // destructor + + Base & operator=( Base const & rhs ); // assignement operator + + Base(int i); +}; + +#endif diff --git a/d03/test_inheritance/a.out b/d03/test_inheritance/a.out new file mode 100755 index 0000000000000000000000000000000000000000..5f80b70a47f2f791c0b31646af1d5b60b450ae5f GIT binary patch literal 17992 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 TrV&c%U(FK*pK>X + +class Base { +public: + Base() { + std::cout << "base default constructor\n";} + Base(int i) { + std::cout << "base parameters constructor\n";} + Base(Base const & src) { + std::cout << "base copy constructor\n"; *this = src;} + Base & operator=(Base const & rhs) { + std::cout << "base assignation operator\n"; return *this;} + ~Base() { + std::cout << "base default destructor\n";} +}; + +class Derived : public Base { +public: + Derived() { + std::cout << "derived default constructor\n";} + Derived(int i) { + std::cout << "derived parameters constructor\n";} + Derived(Derived const & src) { + std::cout << "derived copy constructor\n"; *this = src;} + Derived & operator=(Derived const & rhs) { + std::cout << "derived assignation operator\n"; return *this;} + ~Derived() { + std::cout << "derived default destructor\n";} +}; + +int main () { + + Base base1(1); std::cout << "\n"; + Derived derived1(1); std::cout << "\n"; + Base base2(derived1); std::cout << "\n"; + Derived derived2(base1); + + return 0; +}