[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 Æ÷ÀÎÅÍ°¡ ¾ø´Ù. ¿Ö ¾ø´Â°í ÇÏ´Ï Æ¯Á¤ °´Ã¼¿¡¼­ È£ÃâÇÏ´Â ÇÔ
¼ö°¡ ¾Æ´Ï¹Ç·Î °´Ã¼ÀÇ Æ÷ÀÎÅ͵µ ´ç¿¬È÷ ¾ø´Ù.

À̾ °è¼ÓµË´Ï´Ù. ==============>>>>>>>


--------------------------------------------------------------------------------

    

 ´ÙÀ½