[C++]°­ÁÂ(30)<--´ÙÁß»ó¼Ó





¸â¹ö ÇÔ¼öÀÇ °æ¿ì¿¡µµ ¸¶Âù°¡ÁöÀÇ ·êÀÌ Àû¿ëµÈ´Ù.

#include <iostream.h>
class classA {
 public:
   int dataA;
   classA(int a)
     {dataA=a;}
   void outdata()     
     {
     cout << dataA << endl;
     }
 };
class classB:public classA {
 public:
   int dataA;
   classB(int a):classA(a)
     { }
 };
class classC:public classA {
 public:
   int dataA;
   classC(int a):classA(a)
     { }
 };
void main()
{
classA A(2);
classB B(3);
classC C(4);
classA *ptr;
ptr=&A;
ptr->outdata();      // A°´Ã¼°¡ outdata¸¦ È£ÃâÇÑ´Ù.
ptr=&B;
ptr->outdata();      // B°´Ã¼°¡ outdata¸¦ È£ÃâÇÑ´Ù.
ptr=&C;
ptr->outdata();      // C°´Ã¼°¡ outdata¸¦ È£ÃâÇÑ´Ù.
}

outdata¶ó´Â ÇÔ¼ö¸¦ classA¿¡¼­ Á¤ÀÇÇÏ°í ÆÄ»ý Ŭ·¡½º¿¡¼­´Â ÀÌ ÇÔ¼ö¸¦ ±×´ë
·Î »ó¼Ó¹Þ¾Æ¼­ »ç¿ëÇÑ´Ù. classAÇüÀÇ °´Ã¼¸¦ Æ÷ÀÎÆ®ÇÏ´Â Æ÷ÀÎÅÍ º¯¼ö ptr¿¡ Â÷
·Ê·Î ¼¼ °´Ã¼ÀÇ ¹øÁö¸¦ ´ëÀÔÇÏ¿© ÀÌ Æ÷ÀÎÅÍ º¯¼ö°¡ °¡¸®Å°´Â °´Ã¼ÀÇ outdata
ÇÔ¼ö¸¦ È£ÃâÇÏ°í ÀÖ´Ù. À̶§ outdata ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °´Ã¼´Â ptrÀÌ Æ÷ÀÎÆ®ÇÏ
´Â °´Ã¼°¡ µÈ´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

2
3
4


**********************************************
**********************************************
3-4 ´ÙÁß »ó¼Ó


´ÙÁß »ó¼ÓÀ̶õ µÎ °³ ÀÌ»óÀÇ ±â¹Ý Ŭ·¡½º¿¡¼­ ÇϳªÀÇ ÆÄ»ý Ŭ·¡½º¸¦ ¸¸µå´Â
»ó¼ÓÀÌ´Ù. ¿øÄ¢ÀûÀ¸·Î ÇϳªÀÇ Å¬·¡½º´Â ¿©·¯ °³ÀÇ ±â¹Ý Ŭ·¡½º¿¡¼­ºÎÅÍ ÆÄ»ýµÉ
¼ö ÀÖÁö¸¸ ½ÇÁ¦·Î´Â ¼¼ °³ ÀÌ»óÀÇ ±â¹Ý Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© ÆÄ»ýµÇ´Â °æ¿ì´Â µå
¹°±â ¶§¹®¿¡ ¿©±â¼­´Â µÎ °³ÀÇ ±â¹Ý Ŭ·¡½º¸¦ °®´Â ´ÙÁß »ó¼Ó¿¡ ´ëÇؼ­¸¸ ¾Ë¾Æ
º»´Ù. ¼¼ °³ ÀÌ»óÀÇ ´ÙÁß »ó¼Óµµ µÎ °³ÀÇ ´ÙÁß »ó¼Ó°ú ¿ø¸®»ó ´Ù¸¦ ¹Ù°¡ ¾ø´Ù.
´ÙÁß »ó¼ÓÀ» ½ÇÁ¦ »ýÈ°¿¡¼­ ¿¹¸¦ ã´Â´Ù¸é ´ÙÀ½°ú °°Àº °æ¿ì¸¦ µé ¼ö ÀÖ´Ù.

                        ¦£¦¡¦¡¦¡¦¤
                        ¦¢ ¿¬Àå ¦¢
                        ¦¦¦¡¦¨¦¡¦¥
    ¦£¦¡¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¡¦¡¦¡¦«¦¡¦¡¦¡¦¡¦¨¦¡¦¡¦¡¦¡¦¡¦¡¦¤
  ¦£¦ª¦¡¦¤  ¦£¦ª¦¡¦¤    ¦£¦¡¦ª¦¡¦¤  ¦£¦ª¦¡¦¤    ¦£¦¡¦ª¦¡¦¤
  ¦¢Åé  ¦¢  ¦¢¸ÁÄ¡¦¢    ¦¢ ºü·ç ¦¢  ¦¢ÆæÄ¡¦¢    ¦¢´ÏÆÛ  ¦¢
  ¦¦¦¡¦¡¦¥  ¦¦¦¨¦¡¦¥    ¦¦¦¡¦¨¦¡¦¥  ¦¦¦¨¦¡¦¥    ¦¦¦¡¦¨¦¡¦¥
              ¦¢            ¦¢        ¦¢            ¦¢  
              ¦¦¦¡¦¨¦¡¦¡¦¡¦¡¦¥        ¦¦¦¡¦¡¦¡¦¨¦¡¦¡¦¥  
              ¦£¦¡¦ª¦¡¦¡¦¤              ¦£¦¡¦¡¦ª¦¡¦¡¦¤  
              ¦¢ Àåµµ¸® ¦¢              ¦¢´ÏÆÛ ÆæÄ¡ ¦¢
              ¦¦¦¡¦¡¦¡¦¡¦¥              ¦¦¦¡¦¡¦¡¦¡¦¡¦¥

ÀϹÝÀûÀ¸·Î ¼èºÙÀÌ·Î µÇ¾î ÀÖ´Â ¿¬ÀåÀ̶ó´Â Ãß»óÀûÀÎ »ç¹°·ÎºÎÅÍ ÆÄ»ýµÇ¾î Åé
, ¸ÁÄ¡, ÆæÄ¡, µîÀÇ ¿©·¯ °¡Áö ±¸Ã¼ÀûÀÎ ¿¬ÀåÀ» ¸¸µé ¼ö ÀÖ´Ù. ¸ÁÄ¡´Â ¹«°Ì°í
ÆòÆòÇÑ ¸Ó¸®¸¦ °¡Á® ¸øÀ» ¹Ú±â¿¡ Àû´çÇÑ ¿¬ÀåÀÌ¸ç ºü·ç´Â ¸øÀÇ ¸Ó¸®¸¦ °É±â Àû
´çÇÑ ÀÌ»¡À» °¡Áö°í ÀÖ¾î ¹ÚÇô ÀÖ´Â ¸øÀ» »©³¾ ¼ö ÀÖ´Â ¿¬ÀåÀÌ´Ù.
ÀÌ µÎ ¿¬ÀåÀÇ Æ¯¼ºÀ» Àß È¥ÇÕÇÏ¿© ¸øÀ» »¬ ¼öµµ ÀÖ°í ¹ÚÀ» ¼öµµ ÀÖ´Â Àåµµ¸®
¶ó´Â ¿¬ÀåÀ» »õ·Ó°Ô ¸¸µé¾î ³¾ ¼ö ÀÖÀ¸¸ç Àåµµ¸®´Â ±â¹ÝÀÇ µÎ ¿¬ÀåÀÇ ±â´ÉÀ»
µ¿½Ã¿¡ °¡Áø´Ù. ¶ÇÇÑ °°Àº ¿ø¸®·Î ÆæÄ¡¿Í ´ÏÆÛÀÇ ¼ºÁúÀ» È¥ÇÕÇÏ¿© µÎ °¡Áö ¿¬
ÀåÀÇ ¼º´ÉÀ» ´Ù ¹ßÈÖÇÒ ¼ö ÀÖ´Â ´ÏÆÛ ÆæÄ¡¸¦ ¸¸µé ¼öµµ ÀÖ´Ù.
¶Ç´Â Àåµµ¸®¿Í ´ÏÆÛ ÆæÄ¡¸¦ È¥ÇÕÇÏ¿© "Àåµµ¸® ´ÏÆÛ ÆæÄ¡"¶ó´Â ¿¬ÀåÀ» ¸¸µé ¼ö
µµ ÀÖÀ» °ÍÀÌ´Ù. ¹°·Ð ±×·± ¿¬ÀåÀÌ ½ÇÁ¦·Î ÀÖ´ÂÁö´Â È®ÀÎµÈ ¹Ù ¾ø´Ù.
ÇÁ·Î±×·¡¹Ö¿¡¼­ ½ÇÁ¦ÀÇ »ç¹°À» Ç¥ÇöÇϴ Ŭ·¡½º¿¡¼­µµ ÀÌ·±ÇÑ ¿ø¸®¿Í ÀÌÀ¯·Î
´ÙÁß »ó¼ÓÀ» ÅëÇØ µÎ Ŭ·¡½ºÀÇ ¼ºÁúÀ» µ¿½Ã¿¡ °¡Áö´Â »õ·Î¿î Á¦ »ïÀÇ Å¬·¡½º¸¦
¸¸µé¾î ³¾ ¼ö ÀÖ´Ù.
´ÙÁß »ó¼Ó¿¡ ÀÇÇØ ÆÄ»ýµÇ´Â Ŭ·¡½º´Â µÎ °³ÀÇ ±â¹Ý Ŭ·¡½ºÀÇ ¸â¹ö¸¦ ¸ðµÎ »ó
¼Ó¹Þ°Ô µÈ´Ù. Ŭ·¡½ºÀÇ ¸â¹ö(data member + member function)°¡ °ð Ŭ·¡½ºÀÇ
Ư¼ºÀ̹ǷΠ´ÙÁß »ó¼Ó¿¡ ÀÇÇØ »ý¼ºµÇ´Â Ŭ·¡½º´Â µÎ ±â¹Ý Ŭ·¡½ºÀÇ Æ¯¼ºÀ» »ó
¼Ó¹Þ´Â´Ù°í Ç¥ÇöÇÑ´Ù.


°¡. Message Ŭ·¡½º

¸ÕÀú ´ÙÁß »ó¼ÓÀ» º¸±â Àü¿¡ ´ÙÁß »ó¼Ó ½Ç½ÀÀÇ Àç·á°¡ µÉ Message Ŭ·¡½ººÎÅÍ
¸¸µé¾î º¸ÀÚ. Message Ŭ·¡½º´Â  È­¸é»óÀÇ ÇÑ À§Ä¡¿¡ Ãâ·ÂÇÒ ¸Þ½ÃÁö¿¡ °üÇÑ µ¥
ÀÌÅÍ¿Í ÇÔ¼ö¸¦ °®´Â´Ù. Message Ŭ·¡½º¿¡¼­µµ À§Ä¡°¡ »ç¿ëµÇ¹Ç·Î Position Ŭ
·¡½º·ÎºÎÅÍ »ó¼Ó¹Þ¾Æ¾ß ÇÑ´Ù. ´ÙÀ½¿¡ ¸®½ºÆ®¸¦ º¸À̹ǷΠ½º½º·Î ºÐ¼®Çغ¸±â ¹Ù
¶õ´Ù.

#include <iostream.h>
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#include <string.h>
#include "EX19-3.h"   // ±â¹Ý Ŭ·¡½º°¡ Á¤ÀÇµÈ Çì´õ ÆÄÀÏ
class Message:public Position {    // Message Ŭ·¡½ºÀÇ Á¤ÀÇ
private:                         // PositionÀ¸·ÎºÎÅÍ »ó¼Ó¹ÞÀ½
 char msg[50];
public:
 Message(int mx,int my,char *str):Position(mx,my)
 { strcpy(msg,str); }
 void Show();
 void Hide();
 void Moveto(int,int);
};
void Message::Show()     // message Ãâ·Â
{
setcolor(WHITE);
settextjustify(CENTER_TEXT,CENTER_TEXT);
outtextxy(px,py,msg);
}
void Message::Hide()     // message Áö¿ò
{
setcolor(getbkcolor());
outtextxy(px,py,msg);
}
void Message::Moveto(int nx,int ny)  // Message À̵¿
{
Hide();
px=nx;
py=ny;
Show();
delay(100);
}
void main()
{
int gd=0,gm;
initgraph(&gd,&gm,"");
Message MSG(100,50,"test string");    // °´Ã¼ »ý¼º
MSG.Show();
getch();
for (int i=50;i<380;i+=5)             // Message¸¦ À̵¿½ÃÅ´
MSG.Moveto(100,i);
getch();
closegraph();
}


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


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