[C++]2ºÎ°ÁÂ(47)<--Á¤Àû ¸â¹ö ÇÔ¼ö
³ª. Á¤Àû ¸â¹ö ÇÔ¼ö
Á¤Àû µ¥ÀÌÅÍ ¸â¹ö°¡ ÀÖµíÀÌ Á¤Àû ¸â¹ö ÇÔ¼öµµ ´ç¿¬È÷ ÀÖ´Ù. Á¤Àû ¸â¹ö ÇÔ¼öÀÇ
°¡Àå Å« Ư¡À̶ó¸é °´Ã¼°¡ ¾ø¾îµµ È£ÃâÀÌ °¡´ÉÇÏ´Ù´Â °ÍÀÌ´Ù. ÀÏ¹Ý ¸â¹ö ÇÔ¼ö
´Â Ŭ·¡½º¸¸ ¼±¾ðÇÑ´Ù°í Çؼ È£ÃâÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ¹Ýµå½Ã °´Ã¼¸¦ ¸¸µé
°í ³ ÈÄ¿¡ object.func()ÀÇ ÇüÅ·ΠȣÃâµÇ¾î¾ß ÇÑ´Ù. ¸â¹ö ÇÔ¼ö°¡ ÇÏ´Â ÀÏÀÌ
°´Ã¼¸¦ ´ë»óÀ¸·Î ¸ðÁ¾ÀÇ ¿¬»ê ³»Áö Á¶ÀÛÀ» °´Ã¼¿¡ °¡ÇÏ´Â °ÍÀ̱⠶§¹®¿¡ ¹Ýµå
½Ã °´Ã¼°¡ ÀÖ¾î¾ß ÇÑ´Ù. ÇÏÁö¸¸ Á¤Àû ¸â¹ö ÇÔ¼ö´Â ƯÁ¤ °´Ã¼¸¦ ÀÛ¾÷ ´ë»óÀ¸·Î
ÇÏÁö ¾Ê°í ÁÖ·Î Á¤Àû µ¥ÀÌÅÍ ¸â¹ö¸¦ ÀÛ¾÷ ´ë»óÀ¸·Î Çϱ⠶§¹®¿¡ °´Ã¼ ¾øÀ̵µ
È£ÃâÀÌ °¡´ÉÇÏ´Ù.
Á¤Àû ¸â¹ö ÇÔ¼öÀÇ ÀÛ¾÷ ´ë»óÀÎ Á¤Àû µ¥ÀÌÅÍ ¸â¹ö´Â °´Ã¼ »ý¼º ÀÌÀü¿¡ ¹ú½á Á¸
Àç Çϱ⠶§¹®ÀÌ´Ù. Á¤Àû ¸â¹ö ÇÔ¼ö´Â °´Ã¼ »ý¼º ÀÌÀü¿¡ °´Ã¼°¡ »ý¼ºµÉ ¼ö ÀÖ´Â
±â¹ÝÀ» ´ÙÁö´Â ÀÏÀ» ÇÏ´Â µ¥ »ç¿ëµÈ´Ù. ¿¹¸¦ µé¾î Åë½Å¿¡ »ç¿ëµÇ´Â Ŭ·¡½º¸¦
¸¸µç´Ù°í ÇÏÀÚ. ÀÌ Å¬·¡½º·ÎºÎÅÍ »ý¼ºµÇ´Â °´Ã¼´Â ¸ðµ©À» Á¶ÀÛÇÒ ¼ö ÀÖ´Â ¿©·¯
°¡Áö ´É·ÂÀ» °¡Áö°í ÀÖ´Ù. ±×·±µ¥ ¸ðµ©À» Á¶ÀÛÇϱâ À§Çؼ´Â ¸ðµ©À» ÃʱâÈÇØ
¾ß ÇÑ´Ù. ¸ðµ© ÃʱâÈ ·çƾÀÌ °´Ã¼ ³»ºÎ(ÁÖ·Î »ý¼ºÀÚ)¿¡ Á¸ÀçÇÑ´Ù¸é °´Ã¼°¡
»ý¼ºµÉ ¶§¸¶´Ù ¸ðµ©ÀÌ ÃʱâÈµÇ¾î ¹®Á¦°¡ µÈ´Ù. ±×·¡¼ °´Ã¼¿Í´Â ¹«°üÇÑ Á¤Àû
¸â¹ö ÇÔ¼ö¸¦ ¸¸µé¾î µÎ°í °´Ã¼ »ý¼º ÀÌÀü¿¡ µü Çѹø Á¤Àû ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇØ
ÁÖ¸é µÈ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.
1 #include <stdio.h>
2 #include <iostream.h>
3 #include <conio.h>
4 class Position{
5 private:
6 int px;
7 int py;
8 char ch;
9 static int numpos;
10 public:
11 void outpos();
12 Position(int,int,char);
13 static void startpos();
14 };
15 void Position::outpos()
16 {
17 gotoxy(px,py);
18 putch(ch);
19 gotoxy(1,1);
20 cout << numpos;
21 }
22 Position::Position(int x,int y,char c)
23 {
24 px=x;
25 py=y;
26 ch=c;
27 numpos++;
28 }
29 void Position::startpos()
30 {
31 clrscr();
32 numpos=0;
33 }
34 int Position::numpos=0;
35 void main()
36 {
37 Position::startpos(); // °´Ã¼ ¾øÀ̵µ ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
38 Position A(10,10,'A');
39 A.outpos();
40 getch();
41 Position B(11,11,'B');
42 B.outpos();
43 getch();
44 Position C(12,12,'C');
45 C.outpos();
46 getch();
47 Position D(13,13,'D');
48 D.outpos();
49 getch();
50 Position E(14,14,'E');
51 E.outpos();
52 getch();
53 }
½ÇÇà °á°ú´Â ¾ÕÀÇ ¿¹Á¦¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. ´Ü ȸéÀ» ¸»²ûÈ÷ û¼ÒÇÏ¿©(¸ðµ©
À» ÃʱâÈ ÇÏ´Â °Í¿¡ ºñÀ¯ÇÒ ¼ö ÀÖ´Ù.) ¾ÕÀ¸·Î »ý¼ºµÉ Position °´Ã¼°¡ Á¦´ë·Î
µ¿ÀÛÇÒ ÅÍÀüÀ» ´Û¾ÆÁÖ´Â ÀÏ°ú numpos, Áï »ý¼ºµÇ´Â °´Ã¼ÀÇ ¼ö¸¦ ÃÖÃÊ 0À¸·Î ÃÊ
±âȽÃÅ°´Â ÀÛ¾÷ÀÌ Á¤Àû ¸â¹ö ÇÔ¼ö¿¡°Ô ¿Å°ÜÁ³À» »ÓÀÌ´Ù.
13Çà¿¡¼ startpos()°¡ Position Ŭ·¡½ºÀÇ Á¤Àû ¸â¹ö ÇÔ¼öÀÓÀÌ ¼±¾ðµÇ¾ú°í 29
Çà¿¡¼ startpos() ÇÔ¼ö°¡ Á¤ÀǵǾú´Ù. 37Çà¿¡¼ º¸´Ù½ÃÇÇ startpos() ÇÔ¼ö´Â
PositionÇüÀÇ ¿ÀºêÁ§Æ®¸¦ ¸¸µéÁö ¾Ê°í °ð¹Ù·Î È£ÃâÇÏ¿´´Ù. Á¤Àû ¸â¹ö ÇÔ¼öÀÇ
È£ÃâÀº Ŭ·¡½º À̸§°ú scope ¿¬»êÀÚ¸¦ ÅëÇØ ÀÌ·ç¾îÁø´Ù´Â Á¡ÀÌ ÀÏ¹Ý ¸â¹ö ÇÔ¼ö
¿Í ´Ù¸£´Ù.
ÀÏ¹Ý ¸â¹ö ÇÔ¼öÀÇ È£Ãâ:object.func();
Á¤Àû ¸â¹ö ÇÔ¼öÀÇ È£Ãâ:class::func();
Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼öÀÎ °ÍÀº ºÐ¸íÇϳª ƯÁ¤ °´Ã¼¿¡ ¼Ò¼ÓÀÌ µÇÁö ¾ÊÀ¸¹Ç·Î Ŭ·¡
½ºÀÇ À̸§À¸·Î °ð¹Ù·Î È£ÃâÀÌ °¡´ÉÇÑ °ÍÀÌ´Ù. ±×·¸±â´Â Çصµ Á¤Àû ¸â¹ö ÇÔ¼ö°¡
°´Ã¼¿¡ ÀÇÇØ È£ÃâÇÒ ¼ö ¾ø´Â °ÍÀº ¾Æ´Ï´Ù. ¾îÂ÷ÇÇ ¸â¹ö ÇÔ¼öÀ̹ǷΠ°´Ã¼¿¡¼µµ
È£ÃâÇÒ ¼ö ÀÖ´Ù. 42Çà°ú 43Çà¿¡ B.startpos();¸¦ »ì¦ »ðÀÔÇغ¸ÀÚ. B °´Ã¼¿¡
ÀÇÇØ startpos()°¡ È£ÃâÀÌ µÇ°í ȸéÀÌ ¸»²ûÀÌ Áö¿öÁö°í numpos º¯¼ö´Â ´Ù½Ã 0
À¸·Î ÃʱâȵȴÙ.
B.startpos()¿¡¼ ÇÔ¼ö¸¦ ºÎ¸¥ B °´Ã¼ÀÇ À̸§Àº »ç½Ç ¹«ÀǹÌÇÏ´Ù. B °´Ã¼¿Í s
tartpos() ÇÔ¼ö¿Í´Â º°´Ù¸¥ °ü°è°¡ ¾øÀ¸¸ç B °´Ã¼·ÎºÎÅÍ È£ÃâÇϳª C °´Ã¼·ÎºÎ
ÅÍ È£ÃâÇϳª Â÷ÀÌ°¡ ÀüÇô ¾ø´Ù. Á¤Àû ¸â¹ö ÇÔ¼öÀÇ È£Ãâ¿¡ »ç¿ëµÈ °´Ã¼ÀÇ À̸§
Àº »ç½Ç»ó ±× °´Ã¼°¡ ¼Ò¼ÓµÈ Ŭ·¡½º¸¦ ¹àÈ÷´Â °Í¹Û¿¡ ´Ù¸¥ Àǹ̰¡ ¾ø´Ù. Á¤Àû
¸â¹ö ÇÔ¼ö´Â this Æ÷ÀÎÅÍ°¡ ¾ø´Ù. ¿Ö ¾ø´Â°í ÇÏ´Ï Æ¯Á¤ °´Ã¼¿¡¼ È£ÃâÇÏ´Â ÇÔ
¼ö°¡ ¾Æ´Ï¹Ç·Î °´Ã¼ÀÇ Æ÷ÀÎÅ͵µ ´ç¿¬È÷ ¾ø´Ù.
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------
´ÙÀ½