Á¤Àû ¸â¹ö º¯¼ö´Â Ŭ·¡½ºÀÇ ¹Ù±ù¿¡ ¼±¾ðµÇ¾î ÀÖÁö¸¸ Ŭ·¡½º¿¡ ¼ÓÇÏ¸ç °´Ã¼º°·Î ÇÒ´çµÇÁö ¾Ê°í ¸ðµç °´Ã¼°¡ °øÀ¯ÇÏ´Â ¸â¹öÀÌ´Ù. °³º° °´Ã¼¿Í´Â Á÷Á¢ÀûÀÎ »ó°üÀÌ ¾ø°í °´Ã¼ Àüü¸¦ ´ëÇ¥Çϴ Ŭ·¡½º¿Í °ü·ÃµÈ Á¤º¸¸¦ ÀúÀåÇÏ´Â Á» Ư¼öÇÑ ¸â¹öÀÌ´Ù. Á¤Àǰ¡ Á» º¹ÀâÇØ º¸À̴µ¥ ÀÌ·± ¸â¹ö º¯¼ö°¡ ¿Ö ÇÊ¿äÇÑÁö ¹®Á¦ Çϳª¸¦ Ç®¾î º¸¸é¼ Â÷±Ù Â÷±ÙÈ÷ »ý°¢ÇØ º¸ÀÚ.
´ÙÀ½ ¿¹Á¦´Â Á¤Àû ¸â¹ö º¯¼öÀÇ Çʿ伺°ú µ¿ÀÛÀ» ¼³¸íÇϱâ À§ÇÑ °¡Àå ÀüÇüÀûÀÎ ¿¹Á¦ÀÌ´Ù. 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°´Ã¼°¡ ¼Ò¼ÓµÈ Ŭ·¡½º¸¦ ¹àÈ÷´Â ¿ªÇÒ¸¸ ÇÑ´Ù. Á¤Àû ¸â¹ö¿¡ ´ëÇØ °´Ã¼ÀÇ ¼Ò¼ÓÀ¸·Î ¾×¼¼½ºÇÏ´Â °ÍÀº ÀÏ´Ü °¡´ÉÇÏÁö¸¸ ÀϹÝÀûÀÌÁö ¾ÊÀ¸¸ç ¹Ù¶÷Á÷ÇÏÁöµµ ¾Ê´Ù. Á¤Àû ¸â¹ö´Â ³í¸®ÀûÀ¸·Î Ŭ·¡½º ¼Ò¼ÓÀ̹ǷΠ°¡±ÞÀûÀ̸é Ŭ·¡½º::¸â¹ö ½ÄÀ¸·Î ¾×¼¼½ºÇÏ´Â °ÍÀÌ ÇÕ´çÇÏ´Ù. ´Ü, ¾îµð±îÁö³ª ³í¸®ÀûÀ¸·Î ¼Ò¼ÓµÇ´Â °Í »ÓÀÌÁö Ŭ·¡½º´Â ½Çü°¡ ¾Æ´Ï¹Ç·Î Ŭ·¡½º ¾È¿¡ Á¤Àû ¸â¹ö°¡ ¹èÄ¡µÇ´Â °ÍÀº ¾Æ´Ï´Ù.