27-3-³ª.Á¤Àû ¸â¹ö º¯¼ö

Á¤Àû ¸â¹ö º¯¼ö´Â Ŭ·¡½ºÀÇ ¹Ù±ù¿¡ ¼±¾ðµÇ¾î ÀÖÁö¸¸ Ŭ·¡½º¿¡ ¼ÓÇÏ¸ç °´Ã¼º°·Î ÇÒ´çµÇÁö ¾Ê°í ¸ðµç °´Ã¼°¡ °øÀ¯ÇÏ´Â ¸â¹öÀÌ´Ù. °³º° °´Ã¼¿Í´Â Á÷Á¢ÀûÀÎ »ó°üÀÌ ¾ø°í °´Ã¼ Àüü¸¦ ´ëÇ¥Çϴ Ŭ·¡½º¿Í °ü·ÃµÈ Á¤º¸¸¦ ÀúÀåÇÏ´Â Á» Ư¼öÇÑ ¸â¹öÀÌ´Ù. Á¤Àǰ¡ Á» º¹ÀâÇØ º¸À̴µ¥ ÀÌ·± ¸â¹ö º¯¼ö°¡ ¿Ö ÇÊ¿äÇÑÁö ¹®Á¦ Çϳª¸¦ Ç®¾î º¸¸é¼­ Â÷±Ù Â÷±ÙÈ÷ »ý°¢ÇØ º¸ÀÚ.

´ÙÀ½ ¿¹Á¦´Â Á¤Àû ¸â¹ö º¯¼öÀÇ Çʿ伺°ú µ¿ÀÛÀ» ¼³¸íÇϱâ À§ÇÑ °¡Àå ÀüÇüÀûÀÎ ¿¹Á¦ÀÌ´Ù. Count¶ó´Â À̸§ÀÇ Å¬·¡½º¸¦ ¼±¾ðÇÏ¿© »ç¿ëÇϴµ¥ main¿¡¼­ CountÇü °´Ã¼°¡ ¸î °³³ª »ý¼ºµÇ¾ú´ÂÁö ±× °³¼ö¸¦ °ü¸®ÇϰíÀÚ ÇÑ´Ù. ù ¹øÂ° ¿¹Á¦´Â ´ÙÀ½°ú °°´Ù.

 

¿¹ Á¦ : ObjCount

#include <Turboc.h>

 

int Num=0;

class Count

{

private:

     int Value;

 

public:

     Count() { Num++; }

     ~Count() { Num--; }

     void OutNum() {

          printf("ÇöÀç °´Ã¼ °³¼ö = %d\n",Num);

     }

};

 

void main()

{

     Count C,*pC;

     C.OutNum();

     pC=new Count;

     pC->OutNum();

     delete pC;

     C.OutNum();

     printf("Å©±â = %d\n",sizeof(C));

}

 

Count Ŭ·¡½º¿¡´Â °´Ã¼ÀÇ °íÀ¯ÇÑ Á¤º¸¸¦ ÀúÀåÇϱâ À§ÇØ Value¶ó´Â ¸â¹ö º¯¼ö°¡ ¼±¾ðµÇ¾î ÀÖ´Ù. ÀÌ ¿¹Á¦¿¡¼­´Â Value¸¦ »ç¿ëÇÏÁö ¾ÊÁö¸¸ ³ªÁß¿¡ °´Ã¼ Å©±â¸¦ Á¡°ËÇØ º¸±â À§ÇÑ ¿ëµµ·Î Æ÷ÇÔµÈ °ÍÀÌ´Ù. »ý¼ºµÈ °´Ã¼ÀÇ °³¼ö¸¦ ÀúÀåÇϱâ À§ÇØ ÇÁ·Î±×·¥ ¼±µÎ¿¡ Àü¿ªº¯¼ö NumÀ» ¼±¾ðÇϰí 0À¸·Î ÃʱâÈ­Çß´Ù. Count Ŭ·¡½ºÀÇ »ý¼ºÀÚ¿¡¼­ NumÀ» 1 Áõ°¡½ÃŰ°í ÆÄ±«ÀÚ¿¡¼­ NumÀ» 1°¨¼Ò½ÃÅ´À¸·Î½á ÀÌ º¯¼ö´Â »ý¼ºµÈ °´Ã¼ÀÇ ¼ö¸¦ Á¤È®ÇÏ°Ô ±â¾ïÇÑ´Ù.

OutNum ¸â¹ö ÇÔ¼ö´Â ´Ü¼øÈ÷ Num Àü¿ªº¯¼öÀÇ °ªÀ» È­¸éÀ¸·Î Ãâ·ÂÇÏ¿© ÇöÀç ¸î °³ÀÇ °´Ã¼°¡ ¸¸µé¾îÁ® ÀÖ´ÂÁö¸¦ È®ÀνÃÄÑ ÁØ´Ù. main¿¡¼­ Count Ŭ·¡½ºÀÇ °´Ã¼¸¦ Á¤ÀûÀ¸·Î ¼±¾ðÇϱ⵵ ÇÏ°í µ¿ÀûÀ¸·Î »ý¼ºÇϱ⵵ Çϸ鼭 OutNumÀ» È£ÃâÇß´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

ÇöÀç °´Ã¼ °³¼ö = 1

ÇöÀç °´Ã¼ °³¼ö = 2

ÇöÀç °´Ã¼ °³¼ö = 1

Å©±â = 4

 

ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÈ Á÷ÈÄ¿¡ Àü¿ªº¯¼ö NumÀº 0À¸·Î ÃʱâÈ­µÉ °ÍÀÌ´Ù. main ÇÔ¼ö°¡ ½ÃÀ۵DZâ Àü¿¡ Áö¿ª °´Ã¼ C°¡ »ý¼ºµÇ¸ç À̶§ CÀÇ »ý¼ºÀÚ¿¡¼­ NumÀ» 1Áõ°¡½ÃŰ¹Ç·Î NumÀº 1ÀÌ µÈ´Ù. new ¿¬»êÀÚ·Î Count Ŭ·¡½ºÀÇ °´Ã¼¸¦ µ¿ÀûÀ¸·Î »ý¼ºÇϸé À̶§µµ »ý¼ºÀÚ°¡ È£ÃâµÇ¾î NumÀº 2°¡ µÇ¸ç delete ¿¬»êÀÚ·Î ÀÌ °´Ã¼¸¦ ÆÄ±«ÇÏ¸é ÆÄ±«ÀÚ°¡ È£ÃâµÇ¾î NumÀº ´Ù½Ã 1ÀÌ µÉ °ÍÀÌ´Ù. main ÇÔ¼ö°¡ Á¾·áµÇ¸é Áö¿ª °´Ã¼ C°¡ ÆÄ±«µÇ¹Ç·Î NumÀº ÃÖÃÊÀÇ »óÅÂÀÎ 0À¸·Î µ¹¾Æ°£´Ù.

Á¤ÀûÀÌµç µ¿ÀûÀÌµç °´Ã¼°¡ »ý¼º, ÆÄ±«µÉ ¶§´Â »ý¼ºÀÚ¿Í ÆÄ±«ÀÚ°¡ È£ÃâµÇ¸ç ÀÌ ÇÔ¼öµéÀÌ NumÀ» °ü¸®Çϰí ÀÖÀ¸¹Ç·Î NumÀº Ç×»ó »ý¼ºµÈ °´Ã¼ÀÇ °³¼ö¸¦ Á¤È®ÇÏ°Ô À¯ÁöÇÑ´Ù. µð¹ö°Å·Î ÇÑ ÁÙ¾¿ ½ÇÇàÇØ °¡¸é¼­ Num º¯¼öÀÇ °ªÀ» °üÂûÇØ º¸¸é ÀÌ º¯¼ö°¡ »ý¼ºµÈ °´Ã¼¼ö¸¦ Á¤È®ÇÏ°Ô ¼¼°í ÀÖÀ½À» È®ÀÎÇÒ ¼ö ÀÖ´Ù. ¾ÖÃÊ¿¡ ¿øÇÏ´Â ¸ñÀûÀº ´Þ¼ºÇßÁö¸¸ ÀÌ ¿¹Á¦´Â ÀüÇô °´Ã¼ ÁöÇâÀûÀÌÁö ¸øÇÏ´Ù. Àü¿ªº¯¼ö´Â ¼¼ °¡Áö ¸é¿¡¼­ ¹®Á¦°¡ ÀÖ´Ù.

 

¨ç Ŭ·¡½º¿Í °ü·ÃµÈ Áß¿äÇÑ Á¤º¸¸¦ ¿Ö Ŭ·¡½º ¹Ù±ùÀÇ Àü¿ªº¯¼ö·Î ¼±¾ðÇϴ°¡°¡ ÀÏ´Ü ºÒ¸¸ÀÌ´Ù. ÀÚ½ÅÀÇ Á¤º¸¸¦ ¿ÏÀüÈ÷ ĸ½¶È­ÇÏÁö ¸øÇßÀ¸¹Ç·Î ÀÌ Å¬·¡½º´Â µ¶¸³ÀûÀÎ ºÎǰÀ¸·Î µ¿ÀÛÇÒ ¼ö ¾ø´Ù.

¨è Àü¿ªº¯¼ö°¡ ÀÖ¾î¾ß¸¸ µ¿ÀÛÇÒ ¼ö ÀÖÀ¸¹Ç·Î Àç»ç¿ëÇϰíÀÚ ÇÒ °æ¿ì Ç×»ó Àü¿ªº¯¼ö¿Í ÇÔ²² ¹èÆ÷ÇØ¾ß ÇÑ´Ù. Ŭ·¡½º¸¸ ¹èÆ÷ÇØ¼­´Â Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù.

¨é Àü¿ªº¯¼ö´Â ÀºÆóÇÒ ¹æ¹ýÀÌ ¾ø±â ¶§¹®¿¡ ¿ÜºÎ¿¡¼­ ´©±¸³ª ¸¶À½´ë·Î ÁýÀû°Å¸± ¼ö ÀÖ´Ù. ¾î¶² Äڵ忡¼­ °íÀÇµç ½Ç¼öµç Num=1234; ¶ó°í ´ëÀÔÇØ ¹ö¸®¸é »ý¼ºµÈ °´Ã¼¼ö°¡ 1234°³¶ó°í ¿ÀÆÇÇÏ°Ô µÉ °ÍÀÌ´Ù.

 

°´Ã¼°¡ ¿ÜºÎÀÇ Àü¿ªº¯¼ö¿Í ¿¬°üµÇ´Â °ÍÀº ĸ½¶È­, Á¤º¸ ÀºÆó, Ãß»ó¼º µî ¸ðµç OOP ¿øÄ¢¿¡ ¸ÂÁö ¾Ê´Ù. Àü¿ªº¯¼ö´Â ½ÉÁö¾î ±¸Á¶Àû ÇÁ·Î±×·¡¹Ö ±â¹ý¿¡¼­µµ »ç¿ëÀ» ²¨¸®´Â ´ë»óÀε¥ ÇϹ°¸ç °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö ±â¹ý¿¡¼­¾ß ¿ÀÁ×Çϰڴ°¡? ÀÏ´Ü ¹®Á¦´Â ÇØ°áÇßÁö¸¸ °´Ã¼ ÁöÇâÀûÀÎ ¿ä°Ç¿¡ ¸ÂÃß·Á¸é ¹«½¼ ¼ö¸¦ ¾²µçÁö NumÀ» Count Ŭ·¡½º¾È¿¡ ĸ½¶È­ÇØ¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ Count Ŭ·¡½º¸¦ ¼öÁ¤ÇØ º¸ÀÚ.

 

class Count

{

private:

     int Value;

    int Num;

 

public:

     Count() { Num++; }

     ~Count() { Num--; }

     void OutNum() {

          printf("ÇöÀç °´Ã¼ °³¼ö = %d\n",Num);

     }

};

 

NumÀ» CountŬ·¡½ºÀÇ ¸â¹ö º¯¼ö·Î Æ÷ÇÔ½ÃÄ×À¸¸ç »ý¼ºÀÚ¿¡¼­ Áõ°¡, ÆÄ±«ÀÚ¿¡¼­ °¨¼Ò½Ã۰í ÀÖ´Ù. ÀÏ´Ü Å¬·¡½ºÀÇ ¸â¹ö·Î Æ÷ÇÔ½Ã۴µ¥´Â ¼º°øÇßÁö¸¸ ¸·»ó ½ÇÇàÇØ º¸¸é ÀÌ ¿¹Á¦´Â Á¦´ë·Î µ¿ÀÛÇÏÁö ¾ÊÀ¸¸ç ¹®Á¦°¡ ¾ÆÁÖ ¸¹´Ù. Àû¾îµµ ´ÙÀ½ µÎ °¡Áö Å« ¹®Á¦°¡ ÀÖ´Ù.

¿ì¼± NumÀº ÀüÇô ÃʱâÈ­µÇÁö ¾ÊÀ¸¹Ç·Î ¾²·¹±â°ªÀ» °¡Áö°Ô µÇ¸ç ¾î´À ´©±¸µµ NumÀ» ÃʱâÈ­ÇÒ ¼ö ¾ø´Ù. NumÀÌ °³¼ö¸¦ ÀúÀåÇÏ·Á¸é ÃÖÃÊ 0À¸·Î ÃʱâÈ­µÇ¾î¾ß Çϴµ¥ ÃʱâÈ­ÇÒ ÁÖü°¡ ¾ø´Â °ÍÀÌ´Ù. ¾ð¶æ »ý¼ºÀÚ¿¡¼­ NumÀ» ÃʱâÈ­ÇÒ ¼ö ÀÖÀ» °Í °°Áö¸¸ ÀÌ°Ç ¸»µµ ¾ÈµÈ´Ù. °´Ã¼ÀÇ °³¼ö¸¦ Çì¾Æ¸®´Â NumÀ» °´Ã¼°¡ »ý¼ºµÉ ¶§¸¶´Ù 0À¸·Î ¸¸µé¾î ¹ö¸°´Ù¸é ÀÌ °ªÀº °áÄÚ 0º¸´Ù Ä¿Áú ¼ö ¾ø´Ù. ´©±º°¡°¡ 0À¸·Î ÃʱâÈ­ÇØ ³õ°í »ý¼ºÀÚ´Â Áõ°¡, ÆÄ±«ÀÚ´Â °¨¼Ò¸¸ ÇØ¾ß °³¼ö°¡ Á¦´ë·Î À¯ÁöµÇ´Âµ¥ ÃʱâÈ­ÇØ ÁÙ ÀûÀýÇÑ "´©±¸"¸¦ µµÀúÈ÷ ãÀ» ¼ö ¾ø´Â °ÍÀÌ´Ù.

¶Ç ´Ù¸¥ ¹®Á¦´Â NumÀ» °´Ã¼¸¶´Ù °³º°ÀûÀ¸·Î °¡Áø´Ù´Â Á¡ÀÌ´Ù. C³ª pC °´Ã¼´Â ¸ðµÎ °¢°¢ÀÇ NumÀ» °¡Á® ÇÊ¿ä¾ø´Â ¸Þ¸ð¸®¸¦ ³¶ºñÇÒ »Ó¸¸ ¾Æ´Ï¶ó ÀڽŰú ¶È°°Àº ŸÀÔÀÇ °´Ã¼°¡ ¸î °³³ª ÀÖ´ÂÁö¸¦ ÀÚ½ÅÀÌ °¡Áø´Ù´Â °Íµµ ³í¸®ÀûÀ¸·Î ÇÕ´çÇÏÁö ¾Ê´Ù. µµ´ëü ¾î¶² °´Ã¼°¡ °¡Áø NumÀÌ ÁøÂ¥ °³¼öÀÎÁö ÆÇ´ÜÇϱ⵵ ¾î·Æ´Ù. NumÀº °´Ã¼ ÀÚüÀÇ Á¤º¸°¡ ¾Æ´Ï¶ó °´Ã¼µéÀ» °ü¸®ÇÏ´Â °ªÀÌ¸ç µû¶ó¼­ °´Ã¼º¸´Ù´Â ´õ »óÀ§ÀÇ °³³äÀΠŬ·¡½º¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù. ±×·¡¾ß NumÀÌ ¿ÀÁ÷ Çϳª¸¸ Á¸ÀçÇÏ°Ô µÈ´Ù.

ÀÌ ¹®Á¦¸¦ Ç®·Á¸é NumÀº Ŭ·¡½ºÀÇ ¸â¹öÀ̸鼭 Ŭ·¡½º·ÎºÎÅÍ »ý¼ºµÇ´Â ¸ðµç °´Ã¼°¡ °øÀ¯ÇÏ´Â º¯¼ö¿©¾ß ÇÑ´Ù. À̰ÍÀÌ ¹Ù·Î Á¤Àû ¸â¹ö º¯¼öÀÇ Á¤ÀÇÀ̸ç ÀÌ ¹®Á¦¸¦ Ç® ¼ö ÀÖ´Â À¯ÀÏÇÑ ÇØ°áÃ¥ÀÌ´Ù. Count Ŭ·¡½º¸¦ ´ÙÀ½°ú °°ÀÌ ÇÑ ¹ø ´õ ¼öÁ¤ÇØ º¸ÀÚ.

 

class Count

{

private:

     int Value;

    static int Num;

 

public:

     Count() { Num++; }

     ~Count() { Num--; }

     void OutNum() {

          printf("ÇöÀç °´Ã¼ °³¼ö = %d\n",Num);

     }

};

int Count::Num=0;

 

NumÀº ¿©ÀüÈ÷ Count Ŭ·¡½º ³»ºÎ¿¡ ¼±¾ðµÇ¾î ÀÖµÇ static Ű¿öµå¸¦ ºÙ¿© Á¤Àû ¸â¹öÀÓÀ» ¸í½ÃÇß´Ù. Ŭ·¡½º ¼±¾ð¹®¿¡ ÀÖ´Â int Num; ¼±¾ðÀº ¾îµð±îÁö³ª ÀÌ ¸â¹ö°¡ CountÀÇ ¸â¹ö¶ó´Â °ÍÀ» ¾Ë¸± »ÓÀÌÁö ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏÁö´Â ¾Ê´Â´Ù. ±×·¡¼­ Á¤Àû ¸â¹ö º¯¼ö´Â ¿ÜºÎ¿¡¼­ º°µµ·Î ¼±¾ð¹× ÃʱâÈ­ÇØ¾ß ÇÑ´Ù. Count Ŭ·¡½º ¼±¾ð¹® µÚ¿¡ Num º¯¼ö¸¦ ´Ù½Ã Á¤ÀÇÇߴµ¥ À̶§ ¹Ýµå½Ã ¾î¶² Ŭ·¡½º ¼Ò¼ÓÀÎÁö :: ¿¬»êÀÚ¿Í ÇÔ²² ¼Ò¼ÓÀ» ¹àÇô¾ß ÇÑ´Ù.

Ŭ·¡½º ³»ºÎÀÇ ¼±¾ðÀº NumÀÌ Count Ŭ·¡½º ¼Ò¼ÓÀ̸ç Á¤¼öÇüÀÇ Á¤Àû ¸â¹ö º¯¼ö¶ó´Â °ÍÀ» ¹àÈ÷°í ¿ÜºÎÀÇ Á¤ÀÇ´Â Count¿¡ ¼ÓÇÑ Á¤Àû ¸â¹ö NumÀ» »ý¼ºÇϰí 0À¸·Î ÃʱâÈ­ÇÑ´Ù´Â ¶æÀÌ´Ù. ¿ÜºÎ Á¤ÀÇ¿¡ ÀÇÇØ ¸Þ¸ð¸®°¡ ÇÒ´çµÇ¸ç À̶§ ÃʱⰪÀ» ÁÙ ¼ö ÀÖ´Ù. °ü½À¿¡ µû¶ó Ŭ·¡½º¸¦ Çì´õ ÆÄÀÏ¿¡ ¼±¾ðÇÏ°í ¸â¹ö ÇÔ¼ö¸¦ ±¸Çö ÆÄÀÏ¿¡ ÀÛ¼ºÇÒ ¶§ Á¤Àû ¸â¹ö¿¡ ´ëÇÑ ¿ÜºÎ Á¤ÀÇ´Â Åë»ó Ŭ·¡½º ±¸Çö ÆÄÀÏ(*.cpp)¿¡ ÀÛ¼ºÇÑ´Ù. Class¿¡ ¼ÓÇÑ Type ŸÀÔÀÇ Á¤Àû ¸â¹ö smem¸¦ ¼±¾ðÇÏ´Â ÀϹÝÀûÀÎ ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù.

Çì´õ ÆÄÀÏÀÇ Å¬·¡½º ¼±¾ðºÎ¿¡ Á¤Àû ¸â¹ö º¯¼ö¿¡ ´ëÇÑ ³»ºÎ ¼±¾ðÀÌ ÀÖ°í ±¸Çö ÆÄÀÏ¿¡ Á¤Àû ¸â¹ö º¯¼ö¿¡ ´ëÇÑ ¿ÜºÎ Á¤ÀÇ ¹× ÃʱⰪ ÁöÁ¤¹®ÀÌ ¿Â´Ù. Çì´õ ÆÄÀÏ¿¡ ¿ÜºÎ Á¤ÀǸ¦ µÐ´Ù¸é Çì´õ ÆÄÀÏÀÌ µÎ ¹ø ÀÎŬ·çµåµÉ ¶§ ÀÌÁß Á¤ÀǵǹǷΠ¿¡·¯·Î ó¸®µÉ °ÍÀÌ´Ù. ÀÌ ¿¹Á¦´Â ´ÜÀÏ ¸ðµâÀ̱⠶§¹®¿¡ ÆíÀÇ»ó Ŭ·¡½º ¼±¾ð ¹Ù·Î ´ÙÀ½¿¡ Á¤Àû ¸â¹öÀÇ ¿ÜºÎ Á¤ÀǸ¦ Çß´Ù.

ÀÌ·¸°Ô ¼±¾ðÇϸé NumÀº Count Ŭ·¡½º¿¡ ¼Ò¼ÓµÇ¸ç ¿ÜºÎ Á¤ÀÇ¿¡¼­ ÁöÁ¤ÇÑ ÃʱⰪÀ¸·Î µü ÇÑ ¹ø¸¸ ÃʱâÈ­µÈ´Ù. CountÇüÀÇ °´Ã¼ A,B,C°¡ »ý¼ºµÇ¾ú´Ù¸é °¢ °´Ã¼´Â ÀÚ½ÅÀÇ °íÀ¯ÇÑ ¸â¹ö Value¸¦ °³º°ÀûÀ¸·Î °¡Áö¸ç Á¤Àû ¸â¹ö º¯¼ö NumÀº ¸ðµç °´Ã¼°¡ °øÀ¯ÇÑ´Ù. ±×·¡¼­ °¢ °´Ã¼ÀÇ »ý¼ºÀÚ¿¡¼­ Áõ°¡, ÆÄ±«ÀÚ¿¡¼­ °¨¼ÒÇÏ´Â ´ë»óÀº °øÀ¯µÈ º¯¼ö NumÀ̸ç ÇÑ º¯¼ö°ªÀ» ¸ðµç °´Ã¼°¡ °°ÀÌ °ü¸®ÇϹǷΠNumÀº »ý¼ºµÈ °´Ã¼ÀÇ Á¤È®ÇÑ °³¼ö¸¦ À¯ÁöÇÒ ¼ö ÀÖ´Ù.

Á¤Àû ¸â¹ö º¯¼ö´Â °´Ã¼¿Í ³í¸®ÀûÀ¸·Î ¿¬°áµÇ¾î ÀÖÁö¸¸ °´Ã¼ ³»ºÎ¿¡ ÀÖÁö´Â ¾Ê´Ù. Á¤Àû ¸â¹ö º¯¼ö¸¦ ¼ÒÀ¯ÇÏ´Â ÁÖü´Â °´Ã¼°¡ ¾Æ´Ï¶ó Ŭ·¡½ºÀÌ´Ù. ±×·¡¼­ °´Ã¼ Å©±â¿¡ Á¤Àû ¸â¹öÀÇ Å©±â´Â Æ÷ÇÔµÇÁö ¾ÊÀ¸¸ç sizeof(C) = sizeof(Count)´Â °´Ã¼ÀÇ °íÀ¯ ¸â¹ö ValueÀÇ Å©±â°ªÀÎ 4°¡ µÈ´Ù.

Á¤Àû ¸â¹öÀÇ ¾×¼¼½º ÁöÁ¤Àº ÀÏ¹Ý ¸â¹ö¿Í ¶È°°Àº ¹æ½ÄÀ¸·Î Àû¿ëµÈ´Ù. À§ ¿¹Á¦ÀÇ °æ¿ì NumÀº private ¿µ¿ª¿¡ ¼±¾ðµÇ¾úÀ¸¹Ç·Î ¿ÜºÎ¿¡¼­ ¾×¼¼½ºÇÒ ¼ö ¾ø´Ù. main¿¡¼­ ÀÌ °ªÀ» ÇԺηΠº¯°æÇÒ ¼ö ¾øÀ¸¸ç ¿À·ÎÁö Count Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼ö(ÀÌ ¿¹Á¦ÀÇ °æ¿ì »ý¼ºÀÚ¿Í ÆÄ±«ÀÚ, OutNum)¿¡¼­¸¸ Num°ªÀ» ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù. Á¤Àû ¸â¹öµµ ºÐ¸íÈ÷ Ŭ·¡½º ¼Ò¼ÓÀ̹ǷΠŬ·¡½º¿¡ ¼ÓÇÑ ¸â¹ö ÇÔ¼öµéÀº ¾×¼¼½º ¼Ó¼º¿¡ »ó°ü¾øÀÌ À̸§¸¸À¸·Î ÀÌ ¸â¹ö¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.

´Ü ¿ÜºÎ¿¡¼­ Á¤Àû ¸â¹ö º¯¼ö¸¦ Á¤ÀÇÇÒ ¶§´Â ¿¹¿ÜÀûÀ¸·Î ¾×¼¼½º ¼Ó¼º¿¡ »ó°ü¾øÀÌ ÃʱⰪÀ» ÁÙ ¼ö ÀÖ´Ù. Ãʱâ½ÄÀº ´ëÀÔ°ú´Â ´Ù¸£¹Ç·Î ¾×¼¼½º ¼Ó¼ºÀÇ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù. Á¤Àû ¸â¹ö º¯¼ö¸¦ ¿ÜºÎ¿¡¼­µµ ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï °ø°³ÇÏ·Á¸é Ŭ·¡½º ¼±¾ðºÎÀÇ public¿µ¿ª¿¡ ¼±¾ðÇØ¾ß ÇÑ´Ù. ¿ÜºÎ¿¡¼­ Á¤Àû ¸â¹ö¸¦ ¾×¼¼½ºÇÒ ¶§´Â ¹Ýµå½Ã ¼Ò¼ÓÀ» ¹àÇô¾ß Çϴµ¥ µÎ °¡Áö ¹æ¹ýÀ¸·Î ¼Ò¼ÓÀ» ¹àÈú ¼ö ÀÖ´Ù.

 

Count C;

Count::Num=3;            // Ŭ·¡½º ¼Ò¼Ó

C.Num++;                        // °´Ã¼ ¼Ò¼Ó

 

°´Ã¼ÀÇ ¸â¹öµéÀº Åë»ó °´Ã¼.¸â¹ö ½ÄÀ¸·Î ¼Ò¼ÓÀ» ¹àÈ÷Áö¸¸ Á¤Àû ¸â¹ö º¯¼ö´Â °´Ã¼¿Í Á÷Á¢ÀûÀÎ ¿¬°üÀÌ ¾ø±â ¶§¹®¿¡ º¸Åë Ŭ·¡½ºÀÇ À̸§°ú ¹üÀ§ ¿¬»êÀÚ·Î ¼Ò¼ÓÀ» ¹àÈù´Ù. Count::NumÀ̶ó´Â Ç¥ÇöÀº Count Ŭ·¡½º¿¡ ¼ÓÇÑ Á¤Àû ¸â¹ö º¯¼ö NumÀ̶ó´Â ¶æÀÌ´Ù. ±×·¡¼­ °´Ã¼°¡ ÀüÇô »ý¼ºµÇÁö ¾ÊÀº »óÅ¿¡¼­µµ Ŭ·¡½ºÀÇ À̸§¸¸À¸·Î Á¤Àû ¸â¹ö¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à main¿¡¼­ ÃÖÃÊ NumÀ» 10À¸·Î ´ëÀÔÇÏ°í ½Í´Ù¸é °´Ã¼°¡ »ý¼ºµÇ±â Àü¿¡ Class::Num=10; À¸·Î ´ëÀÔÇÏ¸é µÈ´Ù.

¿øÇÑ´Ù¸é C.Numó·³ °´Ã¼.¸â¹ö ½ÄÀ¸·Î °´Ã¼ÀÇ ¼Ò¼ÓÀÎ °Íó·³ Ç¥ÇöÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¶§ C°´Ã¼ÀÇ À̸§Àº º°´Ù¸¥ Àǹ̴ ¾øÀ¸¸ç C°´Ã¼°¡ ¼Ò¼ÓµÈ Ŭ·¡½º¸¦ ¹àÈ÷´Â ¿ªÇÒ¸¸ ÇÑ´Ù. Á¤Àû ¸â¹ö¿¡ ´ëÇØ °´Ã¼ÀÇ ¼Ò¼ÓÀ¸·Î ¾×¼¼½ºÇÏ´Â °ÍÀº ÀÏ´Ü °¡´ÉÇÏÁö¸¸ ÀϹÝÀûÀÌÁö ¾ÊÀ¸¸ç ¹Ù¶÷Á÷ÇÏÁöµµ ¾Ê´Ù. Á¤Àû ¸â¹ö´Â ³í¸®ÀûÀ¸·Î Ŭ·¡½º ¼Ò¼ÓÀ̹ǷΠ°¡±ÞÀûÀ̸é Ŭ·¡½º::¸â¹ö ½ÄÀ¸·Î ¾×¼¼½ºÇÏ´Â °ÍÀÌ ÇÕ´çÇÏ´Ù. ´Ü, ¾îµð±îÁö³ª ³í¸®ÀûÀ¸·Î ¼Ò¼ÓµÇ´Â °Í »ÓÀÌÁö Ŭ·¡½º´Â ½Çü°¡ ¾Æ´Ï¹Ç·Î Ŭ·¡½º ¾È¿¡ Á¤Àû ¸â¹ö°¡ ¹èÄ¡µÇ´Â °ÍÀº ¾Æ´Ï´Ù.