otai_g 3 Report post Posted July 2, 2008 kawan2 aku ada 1 program dan output dia.tp x phm mcm mn output dia leh dpt mcm tu.mintk tng explain sikit drp hustler2 C++ kita kat sini knp output dia mcm tu.// static members in classes #include <iostream> using namespace std; class CDummy { public: static int n; CDummy () { n++; }; ~CDummy () { n--; }; }; int CDummy::n=0; int main () { CDummy a; CDummy b[5]; CDummy * c = new CDummy; cout << a.n << endl; delete c; cout << CDummy::n << endl; return 0; } output dia 7 6sumber coding : http://www.cplusplus.com/doc/tutorial/classes2.html Quote Share this post Link to post Share on other sites
mgntgrsk 0 Report post Posted July 2, 2008 static int n;perhatikan snippet itu, dan pahamkan akibat daripada meletakkan keyword static tu. Quote Share this post Link to post Share on other sites
Paralys3r 0 Report post Posted July 2, 2008 static int n maknanya awak define n sebagai class variable, maknanya ianya wujud walaupun awak tak instantiate that class. So firt sekaliint CDummy::n=0; n initially become 0 laa then first instantiation of CDummy : CDummy a; tengok ctor tu kan ada increment, so after ctor finish, n = 1 then u create array of CDummy dengan 5 elemens CDummy b[5] maknanya, after this, n = 6 (call ctor 5 times) after that, instantiation with new operator, same also CDummy * c = new CDummy;after this, n = 7so u print n, kluar la n = 7then u delete c, dtor for CDummy kena panggil, yang decrement n. maknanya now n = 6so u print n, kluar laa n = 6 Quote Share this post Link to post Share on other sites