From 7e65467a27b82050f4bd8d2e9992dccb21e1f663 Mon Sep 17 00:00:00 2001 From: Hugo LAMY Date: Sat, 19 Feb 2022 12:01:43 +0100 Subject: [PATCH] transform d03 ex01 assignation function in case of two constructors, tests of assignation and copy operation not successful --- d03/ex01/ClapTrap.cpp | 14 +++++++++----- d03/ex01/ClapTrap.hpp | 9 +++++---- d03/ex01/ScavTrap.cpp | 29 +++++++++++++++++++---------- d03/ex01/ScavTrap.hpp | 6 +++++- d03/ex01/main.cpp | 12 +++++++++++- d03/ex01/robots | Bin 29248 -> 29552 bytes d03/ex03/DiamondTrap.cpp | 31 +++++++++++++++++++++++++++++++ d03/ex03/DiamondTrap.hpp | 22 ++++++++++++++++++++++ d03/ex03/FragTrap.hpp | 2 +- d03/ex03/ScavTrap.hpp | 2 +- 10 files changed, 104 insertions(+), 23 deletions(-) create mode 100644 d03/ex03/DiamondTrap.cpp create mode 100644 d03/ex03/DiamondTrap.hpp diff --git a/d03/ex01/ClapTrap.cpp b/d03/ex01/ClapTrap.cpp index 5c7246d..fb8289c 100644 --- a/d03/ex01/ClapTrap.cpp +++ b/d03/ex01/ClapTrap.cpp @@ -12,7 +12,7 @@ int ClapTrap::_totalNumber = 0; ClapTrap::ClapTrap( void ) { - std::cout << "claptrap created without name\n"; + std::cout << "claptrap default creation without name\n"; return; } @@ -30,8 +30,8 @@ ClapTrap::~ClapTrap( void ) { */ ClapTrap::ClapTrap( ClapTrap const & src ) { - std::cout << _class << " " << _name << " copied\n"; *this = src; + std::cout << _class << " " << _name << " copied\n"; return; } @@ -46,6 +46,9 @@ ClapTrap & ClapTrap::operator=( ClapTrap const & 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"; @@ -65,9 +68,9 @@ ClapTrap::ClapTrap( std::string name ) : _name(name) { _hit = 10; _energy = 10; _attack = 1; - _number = _getNumber(); + _number = getNumber(); - std::cout << _class << " " << _name << " created with number " << _number << "\n"; + std::cout << _class << " " << _name << " named creation with number " << _number << "\n"; return; } @@ -76,10 +79,11 @@ ClapTrap::ClapTrap( std::string name ) : _name(name) { */ std::string ClapTrap::getName() const {return _name;} +std::string ClapTrap::getClass() const {return _class;} int ClapTrap::getHit() const {return _hit;} int ClapTrap::getEnergy() const {return _energy;} int ClapTrap::getAttack() const {return _attack;} -int ClapTrap::_getNumber() {return ClapTrap::_totalNumber;} +int ClapTrap::getNumber() const {return ClapTrap::_totalNumber;} void ClapTrap::_increaseNumber() {ClapTrap::_totalNumber++;} /* diff --git a/d03/ex01/ClapTrap.hpp b/d03/ex01/ClapTrap.hpp index d1d3259..354a24f 100644 --- a/d03/ex01/ClapTrap.hpp +++ b/d03/ex01/ClapTrap.hpp @@ -21,26 +21,27 @@ public: void beRepaired(unsigned int amount); std::string getName() const; + std::string getClass() const; int getHit() const; int getEnergy() const; int getAttack() const; + int getNumber() const; protected: - std::string const _name; + std::string _name; std::string _class; int _hit; int _energy; int _attack; int _number; - int _getNumber(); void _increaseNumber(); -private: - ClapTrap( void ); // default/parametric constructor +private: + static int _totalNumber; }; diff --git a/d03/ex01/ScavTrap.cpp b/d03/ex01/ScavTrap.cpp index df8bc14..bbeff9b 100644 --- a/d03/ex01/ScavTrap.cpp +++ b/d03/ex01/ScavTrap.cpp @@ -1,14 +1,23 @@ #include "ScavTrap.hpp" +/* + * assign values for default or secondary constructors + */ + +void ScavTrap::assignValues( ScavTrap & src ) { + src._class = "ScavTrap"; + src._hit = 100; + src._energy = 50; + src._attack = 20; +} + +/* + * parameters constructor + */ + ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { - - _class = "ScavTrap"; - _hit = 100; - _energy = 50; - _attack = 20; - - std::cout << _class << " " << ScavTrap::_name << " created with number " << _number << "\n"; - + assignValues(*this); + std::cout << _class << " " << _name << " named creation with number " << _number << "\n"; return; } @@ -17,7 +26,7 @@ ScavTrap::ScavTrap( std::string name ) : ClapTrap(name) { */ ScavTrap::~ScavTrap( void ) { - std::cout << _class << " " << ScavTrap::_name << " destructed\n"; + std::cout << _class << " " << _name << " destructed\n"; return; } @@ -26,5 +35,5 @@ ScavTrap::~ScavTrap( void ) { */ void ScavTrap::guardGate() { - std::cout << _class << " " << ScavTrap::_name << " entered special mode Gate Keeper\n"; + std::cout << _class << " " << _name << " entered special mode Gate Keeper\n"; } diff --git a/d03/ex01/ScavTrap.hpp b/d03/ex01/ScavTrap.hpp index 9618d2b..bcf2198 100644 --- a/d03/ex01/ScavTrap.hpp +++ b/d03/ex01/ScavTrap.hpp @@ -9,11 +9,15 @@ class ScavTrap : public ClapTrap { public: - ScavTrap(std::string name); ~ScavTrap(); + ScavTrap(std::string name); void guardGate(); +private: + + void assignValues( ScavTrap & src); + }; #endif diff --git a/d03/ex01/main.cpp b/d03/ex01/main.cpp index 95451d7..ce39b00 100644 --- a/d03/ex01/main.cpp +++ b/d03/ex01/main.cpp @@ -49,7 +49,17 @@ 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(); + + ScavTrap robotmp2("robot5"); + ScavTrap robot5(robotmp2); + robot5.guardGate(); + +// ClapTrap robotmp3("robot6"); // PBM : assignation doesn't work... +// ScavTrap robot6(robotmp3); goAttack(robot1, robot2); goAttack(robot2, robot1); diff --git a/d03/ex01/robots b/d03/ex01/robots index 9d66d84bcb023d6998a7849d5078b2af9cc8e5d9..327bcf2be42409ba26070b92268a8e6ec8d4f98e 100755 GIT binary patch literal 29552 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 ZNz_%lqDFh?@%f*>Nl=^?!w^$t{|TT9wN(HB delta 9077 zcmai333OCNx~|)ueIrRHbT`?$lMoV?Y^<{A4J6QE4Lgn?37c^P#6)q)BpFbNIT->! z9696Y3+IjV;)p}EWsKuX2#N;gp@yeNf^1>Gfe@R;AtKuE|LflB+;q@a=k%?r?_cV# zzrI_y`d-&1spW!HYl*Cllo=KE%2>-|+lKx%uppF!tYF*mjG)g_)Xrxq5GkbxZ3$Mp zTY_P_lrCA|IcclCWwHvkOqO{=)KQX(M?sq5ou~uPe)p$Y6+gYRs%gVy=cqU2%cnkg z3lu{#Itew#;5E%SL@I#@A2U=KGoip}k;YR`a&fH3Xn_X&rTVl;iG*zTwMfUfC=**h z^H!m6rnC>X`6fs*yyt6{YMqCDT?XgvfEOev2^u&0u#vHF49bSTf|TcQGX89Uj~b=K zBz8$BFCFw~AY;DF3}=H9vXW4XEWh6SxG!TqEL-cBq-_si%*ZBb{ik|fGcaag`H&TC zvPP?}`L$=c%xgcq4uoaFX363#4c;qRtsGV_^@TET_~SJaCWTH5HLC)CJp@^yW@qg9 z2E+T|brLj0L`T;~$Xw)Tj##0!{@D)SMNH61qI8m>k$Oq2PV#)@#FY(WWael+AoHrV z!Yng)boMO9Zq?o#5P#>>HR%HqHZv-U+YkHLj zB*?6p>sNMnfYoG|I$(k+#`M{2G%GbNbW~kbo_D+5pZhxDQPV@ii^I@cbyy0lTL z#!e^qUsKkmym8m-{0X>BR%r?ZnFqywBCDuUPD<5zE=N^fJ^JZU!a_hc zr@)%1LDF!jj2;GiqAbIUk>~cmbP?R?7eO>e5Y!t%^ryOl4w!=3CG_|P10cr5^qnN!1hen!bgRnqe_gj$9ecE!LL zOL~}#Bqmkj`WZH$WMmAyjuM3=fA692b}B!^F_f(J-)>DQFRORd?6V;Sm8HlXEeTBo zIBH7km1$@vGDDj66jipDrcxQ(n?KUZB&`r!4&jdgG0rU{iok6!V^Hw0lR8axWYxn# z-8g(;Q!G>tGL^rn!+Ge}Vm#wFk)jBp)Ju_1sjwfYj^^mac~ba@BSo;D#c9e6qS;-= z1?yY^aWUD0zWza*kVsU868>+5j!6(4n~}&Uxi5L?H1&{^{e(Wv)%>>*FzN?z#YFk9 zB|L=iQPO#kW261z2zd_dvDQ4E+$wy)bf(fqP{U`eIB+lR#ARTPssmMRj;flCIBeBR zC3x)|fv`~K`HHcEJ#G-3jtfb+X+as$u5&mU*Ob*O;pn?M@2;crpv?e*@k!C|d2~pT z>wL)|Cq63X&@D`MRjWdHf%3PTIE9^f8IX|6U~l}uA&W^~UDoc{)M|57m31gn5#Yn| zEu=XScMs+Lo6r@XnOT5_Y9xFVv{EK{LoQ{IHsU-tEFG6rhzdAiN7bwjHTl(L9nG{G zDp4Lunz*h-z;T0sXVN^5~Wy1})n~)Sc zOK1xdmok)(*{ZC73AVxI|4jqoh}zuSm3M@Nqq_8vW7Fq0o&&{)^!OZFgsT>H4tK5# zNuwq~yXvw=<)}x{AWRyXXVV;7QKCX2)n%w$>QYu?;BeKJUOr#QgiV_wdqav6$HQq= z7UG>x>&W;HwW*8Nug6hU>cR~U>paCVAuph?9%}W6=(uq zB^E<#Qnab#dotCLZ>tNwPm1?nL5Z5~f~aJ>&k*D~+?O0*zLS*ixeC=DiDwns_$sXM z2z0CPI5}V9k<^P^kYY-SGk{7 z<&!%wac~;Em6Qn2CRq$|-LNew3RVwJOhOw+O%tP?|1n|TT!{k-)TbN%HaJo0hA##u zOV{A~u%yIkWJGDG+2Yv_tDC6Zyp2M9_8N>$Nk)^UDOUe?3CX?&FCuacb_?WM7aT}Q zo^(xkTB7qr?dH8?SKlR=TD`9xQO<;#rj4`>zSsr!5mtYGBR|mvIU{U_@m;WL$V*`# zso`_253j=QA@TOBVw`chaj4yVkjB|~6~?3{OI`3#s?~pS4k9D3!VB2`mZYYu@Oo;3 zbQL~M9UP|UoVQ$o?$r3OI5fa?@$q(CfiKg|VQ;BgJg@7nzyoQ?(iK>ip`~N!6)4NF zC+8~ru86pL#52TE-9+tXp0|sgaG0BRr&;~yP+WDL5H{3o?$q+acLzt!zBZhSvZ50v z4z)|2@bFM`p3uO+8c29s5vi5qgD$)U4-OlVggSy^j|=@i#Pd~;53Z4NiVonU%+>*%lxNS0 zoM|^$+c{X9dH)mv_aWuS-Y9pm+8gC0opTPp&x{Vl@rabWyCF0yEeSORDLuaWkaFQU zPRhvhoRpK!!S1YNJ6Zh(DG#0Hq?~`Qmz0~%a#Dt&z1R@%Kg&sZ_^fbtZ&Lo)A@b3G zNBp9rmy}H%a6Oy;Nt#B!7S^ew$G^`&PZ4k* zQvP&O8&{y*#arGe_p|jR>>U#wjDCoeXK}ZKgt764@{{nuSZjF++BooNM~B7c?X(Ox zgcm&hG`3EaS26sDI5jt$SB@yGdXJEc$eJHsbSDx1^qlFDh?7WZBaTzABzXjM3{hV@ z)HUh!A1YMU3*L-YKJ?c)**+fRUfTztwrvBL|cHf0XCY*k*t zU06MnF(^ogUpD)M2-Ewtp6ijcX>PRBdW=WleOiw|i5Rk7abAWK;|9gOh9h!NNL9hZQL@+cvj4u;d|lF_T6oW(P1CcQ9( zv7ANuRo~_;%&+<(XF*QY-Gz>t5t|X7KQrxT$EL0TW$SV0-uveIIc?)*<90bQeB~2G z>q|Bit+%b*u)3&Z^(vSwkN4Nw&R6AGhH@#!IDy_A+Hv5*FWl}W*zWk!?XJMu_LbXR zhjk{_^#;b)Q*C6d0_zSRe1VCz4c{%aVV#M3tj+Dt#kvLS4yup3-2rIV^1mpj`fK!0 z^*87rYu9mix%&`0ti=ht$T8;4f{tr(F%O}FjLcQAF2p*3 zjCCQ_Td=OBKKa3CVJ+4&p4S?&X86}b#()d)|3)#^wwqCIH@~h zO&PHZlaPTXEZ0ArUPWf&?*qh8iZ?+;Qw1!s3FrVD5OohwFs>8FdOVj~t7I=kwyz z#$h@s?LKn8%yPoQUp7n$^)t5m;AlA^e&LM%k?+7^E8sw0O!)`25Xar_w-NPd8~%dI zjB9>_@&e31zF+E<&*Wk*zxDsfqi}tG!+s4Lg$ixBu=u{DcYsB`11!+wzZO7=CZ{(F zo(UB9+V4Pl3mll55N!L_?S2!Ld=BNq)v0mWyRhF){VrXi413X(=ZUY$QnW5S=5`0; zG<_^Eep-C+63o``sXK8xR8O;x-GeGNoWM_%^HtMjPY}jJU*U_E_Z!sf!3W`9(%Ul~ zPE50oxQkc?9{lzbc1v%Y?6IZwI)bd-1$IZw;4W-gy4~(&hI2wu-;h%QY=@uIuq#M95)krgAp0>O{wZPl66Y#!1 zJo^DD6$0lZM5YGIT%W!eQ0WMQ@pICp0(f*z0)AAvKGy_op{uqRwEbs$fn;s*mARJw zVr2e|6wPRKeQvZdkm1n^>mZg2_Ic4TdtSCw2bJ^86vUtArDwNHzL%2-);{H4cqGHk z<<7i6N^S7e{AhS{{`C9?M_)yJn~o)tedC1>*6Jal{OuHc?dfO7K*bd zT96S@r)7Vfrg8&zFGwglCznAbk-t=>lniIm_ZDJ*rtv z^uo_0P7!B9<-&{zmsiALaA2VsI_3vtO~hM8U&Ls13+am+JLIndA{J#t$Qs{724cux zehLzdblNnjuus)+rmGRmEd$}}%?eSW7hHGcGHldV0#(C2a`L)<=J(-HXjox7ep#V)#w1P!^%^ z+Jw7eByq;B;{4Hol93v28?EBBV^PV~@Pb5{x{P*WDqA(YVxY|X^pK>oSK!gI`ax9) zz7hg0tpZnIuF;%zA8rQW%);p7nZC$~Q@A#pibrU|-_ci4YkmM@HneKW`#v2xToAH8p4KubQ6@Z87)*2~GCXDAIAd z=FdW99$~8LlOBCkW?@bU7oWWOK?-p?bP>+HGFc8ezcc3_)TDB}Oima*lc}_8xGhnp zF5@QwtZ!?0q2`Sq+EgZh^pIKFN>^|^WU;=DAAu>q-s`%LG^{-&W%wzhNaoh`DT2xX zIDlSK=xTiy_j}T@tdL2>Fg3gY*EvJiqD-7~BIdC!R_3x`RfSDMoLJ?}j|EzeSfZ*g zSalJ{567`=D^#3mWgXa;nu|WttQxdY-qfW3(s1uv=Y)oPbEpe(8pS&&Jv2&I9B~EL zi9StJSy>0iAZK9h?@y~m!KrIGO1^09IEvE|cd&Y7GubNTY8OIIwJ3mCFb>+*n4n@+7+8v(@P3iW`Ac!O z(K+IYBuUx=bDzwJ5GRTjEk8?O8={sVnNQw=p;H+HN1x0HEYQ#b2wXchs6*@FiDmlQ zF%jY*ld91)6}GJ{m+%p`E+bMr#OpLlMh}L0>(Yb7#)0ROSJzFIn&Id=3}~`UBjV$M zS1bx5)@MYDvq}3D6>ax{dF#_7#7U&Vp~2`P!P&6hCgE}A=u;Vi;vQ*(zzq-J+opVe rt=jNF^tidINdRshROl$22d6d+3z8q^04olL$fw5`>K}#aPpAAJhK4W0 diff --git a/d03/ex03/DiamondTrap.cpp b/d03/ex03/DiamondTrap.cpp new file mode 100644 index 0000000..9a936c4 --- /dev/null +++ b/d03/ex03/DiamondTrap.cpp @@ -0,0 +1,31 @@ +#include "DiamondTrap.hpp" + +DiamondTrap::~DiamondTrap( std::string name ) : ScavTrap(name), FragTrap(name) { + + _class = "FragTrap"; + _hit = 100; + _energy = 100; + _attack = 30; + + std::cout << _class << " " << FragTrap::_name << " created with number " << _number << "\n"; + + return; +} + +/* + * destructor + */ + +DiamondTrap::~DiamondTrap( void ) { + std::cout << _class << " " << DiamondTrap::_name << " destructed\n"; + return; +} + +/* + * special capacity + */ + +void DiamondTrap::highFivesGuys() { + std::cout << _class << " " << DiamondTrap::_name << " wait for a high fives, common guys\n"; +} + diff --git a/d03/ex03/DiamondTrap.hpp b/d03/ex03/DiamondTrap.hpp new file mode 100644 index 0000000..ed1d20b --- /dev/null +++ b/d03/ex03/DiamondTrap.hpp @@ -0,0 +1,22 @@ +#ifndef DIAMONDTRAP_HPP +# define DIAMONDTRAP_HPP + +# include +# include +# include "ClapTrap.hpp" + +class DiamondTrap : public FragTrap, public ScavTrap { + +public: + + DiamondTrap( std::string name ); + ~DiamondTrap( void ); + + void whoAmI(); + +private: + + std::string _name; +}; + +#endif diff --git a/d03/ex03/FragTrap.hpp b/d03/ex03/FragTrap.hpp index bc3c68d..b52fdf7 100644 --- a/d03/ex03/FragTrap.hpp +++ b/d03/ex03/FragTrap.hpp @@ -5,7 +5,7 @@ #include #include "ClapTrap.hpp" -class FragTrap : public ClapTrap { +class FragTrap : virtual public ClapTrap { public: diff --git a/d03/ex03/ScavTrap.hpp b/d03/ex03/ScavTrap.hpp index 9618d2b..4dd9ba9 100644 --- a/d03/ex03/ScavTrap.hpp +++ b/d03/ex03/ScavTrap.hpp @@ -5,7 +5,7 @@ #include #include "ClapTrap.hpp" -class ScavTrap : public ClapTrap { +class ScavTrap : virtual public ClapTrap { public: