Ŭ·¡½º À̸§ÀÌ PositionÀ̹ǷΠ»ý¼ºÀÚ´Â ´ç¿¬È÷ Position()ÀÌ µÈ´Ù. »ý¼ºÀÚ Po
sition()Àº ¼¼ °³ÀÇ Àμö¸¦ ¹Þ¾Æ µ¥ÀÌÅÍ ¸â¹ö px,py,ch¿¡ °¢°¢ ´ëÀÔÀ» ÇØÁÖ´Â
°£´ÜÇÑ ±¸Á¶·Î µÇ¾î ÀÖ´Ù. »ý¼ºÀÚ´Â °´Ã¼°¡ »ý¼ºµÉ ¶§ Ưº°È÷ È£ÃâÇÏÁö ¾Ê¾Æµµ
ÀÚµ¿À¸·Î È£ÃâµÈ´Ù. Áï ¸Þ¸ð¸®°¡ ÇÒ´çµÇ°í ³ Á÷ÈÄ¿¡ »ý¼ºÀÚ°¡ È£ÃâµÇ¾îÁ® ÇÒ
´ç¹ÞÀº ¸Þ¸ð¸®¸¦ ÃʱâȽÃÅ°°Ô µÈ´Ù.
Position HERE;°¡ °´Ã¼°¡ »ý¼ºµÇ´Â ½Ã±âÀ̹ǷΠÀÌ ¹®ÀåÀ» ½ÇÇàÇÒ ¶§ »ý¼ºÀÚ°¡
È£ÃâµÈ´Ù. ±×·±µ¥ »ý¼ºÀÚµµ ºÐ¸íÈ÷ ÇÔ¼öÀ̹ǷΠÀμö¸¦ ¿ä±¸ÇÏ¸ç ¾î¶² ÇüÅ·εç
Áö Àμö°¡ ÇÔ¼ö·Î Àü´ÞµÇ¾î¾ß ÇÑ´Ù. ÀϰŸ®¸¦ ¾ÈÁÖ°í ¾î¶»°Ô ÀÏÀ» ½ÃÅ°°Ú´Â°¡
¸»ÀÌ´Ù. ±×·¡¼ °´Ã¼¸¦ ¼±¾ðÇÏ´Â ¹®Àå¿¡ »ý¼ºÀÚÀÇ Àμö°¡ ³ªÅ¸³ª°Ô µÇ¸ç Posit
ion HERE(10, 10, 'S')¿Í °°Àº ½ÄÀ¸·Î µÈ´Ù.
PositionÇüÀÇ object HERE¸¦ »ý¼ºÇ쵂 ±× »ý¼ºÀÚÀÇ Àμö¸¦ (10,10,'S')·Î ÇÑ
´Ù´Â ¼±¾ð¹®ÀÌ´Ù. »ý¼ºÀÚ¿¡ ÀÇÇØ object ¼±¾ð°ú µ¿½Ã¿¡ °´Ã¼ÀÇ µ¥ÀÌÅÍ ¸â¹ö¸¦
ÃʱâȽÃų ¼ö ÀÖ°Ô µÇ¾úÀ¸¹Ç·Î ÀÌÁ¦ ÇÁ·Î±×·¡¹ÖÀÌ ÈξÀ ´õ °£´ÜÇØÁö°Ô µÇ¾ú´Ù.
¿¹Á¦¸¦ º¸¸é ¾Ë°ÚÁö¸¸ main ÇÔ¼ö°¡ ´Ü ¼¼ ÁÙ·Î ³¡ÀÌ ³µ´Ù. »ý¼ºÀÚ´Â ¿©·¯°³ µ¿
½Ã¿¡ Á¸ÀçÇÒ ¼ö°¡ ÀÖ´Ù. ÇÔ¼ö°¡ ´ÙÇü¼º¿¡ ÀÇÇØ Àμö°¡ ´Ù¸£¸é µ¿ÀϸíÀ¸·Î ¿©·¯
°³°¡ ÀÖÀ» ¼ö ÀÖµíÀÌ »ý¼ºÀÚµµ ÇÔ¼öÀ̹ǷΠÀμö¸¸ ´Ù¸£´Ù¸é ¿©·¯°³°¡ À־
»ó°ü¾ø´Ù. À§ ¿¹Á¦¿¡ ´ÙÀ½°ú °°Àº »ý¼ºÀÚ¸¦ Çϳª ´õ Ãß°¡½ÃÄÑ º¸ÀÚ. ¹°·Ð Ŭ·¡
½º Á¤ÀÇ ºí·° ¾È¿¡ ¿øÇüµµ ¹àÇô ÁÖ¾î¾ß ÇÑ´Ù.
Position::Position(int xy,char c)
{
px=py=xy;
ch=c;
}
µ¥ÀÌÅÍ ¸â¹ö px,py¸¦ °°Àº °ªÀ¸·Î Á¤ÀÇÇÏ´Â »ý¼ºÀÚÀ̹ǷΠ»ý¼ºµÇ´Â °´Ã¼´Â ´ë
°¢¼±»óÀÇ À§Ä¡¸¸À» ³ªÅ¸³»°Ô µÈ´Ù. µÎ °³ÀÇ »ý¼ºÀÚ°¡ µ¿½Ã¿¡ Á¸ÀçÇϹǷΠ´ÙÀ½
µÎ ¼±¾ðÀº µ¿ÀÏÇÑ ¸ð¾çÀÇ °´Ã¼¸¦ ¸¸µéÁö¸¸ ÃʱⰪÀÌ ´Ù¸¥ °´Ã¼°¡ ¸¸µé¾îÁö¸ç
±× ÀÌÀ¯´Â °´Ã¼ »ý¼º½Ã È£ÃâµÇ´Â »ý¼ºÀÚ°¡ ´Ù¸§¿¡ ±âÀÎÇÑ´Ù.
Position A(10,18,'D');
Position B(16,'S');
ÄÄÆÄÀÏ·¯´Â °´Ã¼°¡ »ý¼ºµÉ ¶§ °´Ã¼ À̸§ µÚÀÇ »ý¼ºÀÚ·Î Àü´ÞµÈ ÀμöµéÀ» º¸°í
ÀûÀýÇÑ »ý¼ºÀÚ¸¦ ÀÚµ¿À¸·Î È£ÃâÇØÁØ´Ù. ¸¸¾à ÀÌ »óÅ¿¡¼ Position C(1,2,"str
ing");À̶ó´Â »ý¼ºÀÚ¸¦ È£ÃâÇÏ¸é ¾î¶»°Ô µÇ°Ú´Â°¡? ÀÌ·± °æ¿ì´Â ÄÄÆÄÀÏ·¯°¡ ´ë
ÀÀµÇ´Â ÀûÀýÇÑ »ý¼ºÀÚ¸¦ ãÀ» ¼ö ¾ø±â ¶§¹®¿¡ ¿¡·¯·Î 󸮵ȴÙ. »ý¼ºÀÚ ÇÔ¼ö¿¡
µðÆúÆ® Àμö°¡ Àû¿ëµÇ´Â °æ¿ìµµ ºñ±³Àû ºó¹øÇÏ°Ô ¹ß»ýÇÑ´Ù. ´ÙÀ½ÀÇ »ý¼ºÀÚ´Â
¼¼ ¹ø° Àμö°¡ Àü´ÞµÇÁö ¾ÊÀ» °æ¿ì 'S'¸¦ ¼¼ ¹ø° Àμö·Î ÃëÇÏ´Â »ý¼ºÀÚ ÇÔ¼ö
ÀÌ´Ù.
Position::Position(int x,int y,char c='S') // default Àμö
{
px=x;
py=y;
ch=c;
}
»ý¼ºÀÚ ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ» °æ¿ì´Â ¾Æ¹«·± Ãʱâȵµ ÀÌ·ç¾îÁöÁö ¾ÊÀ¸¸ç
¿¡·¯´Â ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ÃʱâÈ°¡ ±»ÀÌ ºÒÇÊ¿äÇϰųª ¾Æ´Ï¸é Ãʱâȸ¦ ÇØÁÖ´Â
º°µµÀÇ ¸â¹ö ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. »ý¼ºÀÚÀÇ »ç¿ë¿¡ ¶Ç ÇÑ °¡Áö
ÁÖÀÇÇÒ °ÍÀº ´ÙÀ½°ú °°ÀÌ Àμö¸¦ ÃëÇÏÁö ¾Ê´Â »ý¼ºÀÚµµ ÀÖÀ» ¼ö ÀÖ´Ù.
Position::Position() // Àμö°¡ ¾øÀ½
{
px=random(80);
py=random(25);
ch=random(80)+20;
}
Àμö°¡ ¾ø´Â »ý¼ºÀÚµµ °´Ã¼ »ý¼º½Ã¿¡ È£ÃâµÇ±â´Â ¸¶Âù°¡ÁöÀÌÁö¸¸ °´Ã¼ ¼±¾ð¹®
¿¡ ´ÙÀ½°ú °°ÀÌ »ý¼ºÀÚ È£ÃâÀ» À§ÇÑ °ýÈ£¸¦ ºÙ¿©¼´Â ¾ÈµÈ´Ù.
Position D();
ÀÏ¹Ý ÇÔ¼ö´Â Àμö°¡ ¾ø´õ¶óµµ ÇÔ¼öÀÓÀ» ³ªÅ¸³»±â À§ÇØ ºó °ýÈ£¸¦ ½á ÁÖ¾î¾ß ÇÏ
Áö¸¸ »ý¼ºÀÚ´Â ÀÚµ¿À¸·Î È£ÃâµÇ´Â °ÍÀ̱⠶§¹®¿¡ Àμö°¡ ¾øÀ» °æ¿ì´Â °ýÈ£ Á¶
Â÷µµ ÇÊ¿ä°¡ ¾ø´Ù. °ýÈ£°¡ ÀÖÀ¸¸é ¿ÀÈ÷·Á ¾û¶×ÇÑ ¿¡·¯°¡ ¹ß»ýÇϹǷΠÀμö ¾øÀÌ
Position D;¿Í °°Àº ÇüÅ·Π°´Ã¼¸¸ »ý¼ºÇÏ¸é µÈ´Ù. »ý¼ºÀÚ Áß¿¡´Â º¹»ç »ý¼ºÀÚ
(copy constructor)¶ó°í ÇÏ´Â ¾ÆÁÖ Æ¯º°³ »ý¼ºÀÚµµ ÀÖ´Ù. ¹®¹ýÀº °£´ÜÇÏ´Ù.
Position A=B;
°°Àº Ŭ·¡½ºÇüÀÇ ´Ù¸¥ °´Ã¼ÀÇ °ªÀ» ±×´ë·Î º¹»ç¹Þ´Â ÇüÅ·Π°´Ã¼°¡ »ý¼ºµÈ´Ù.
int i=j;¿Í ºñ½ÁÇÑ ÇüÅÂÀÇ µ¿ÀÛÀ» ÇÏ¸ç ¿©·¯ °³ÀÇ °´Ã¼¸¦ ¶È°°Àº °ªÀ¸·Î Ãʱâ
ÈÇÒ ¶§ ¾ÆÁÖ Æí¸®ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ´Ù. ±×·¯³ª º¹»ç »ý¼ºÀÚ´Â °ÑÀ¸
·Î´Â °£´ÜÇØ º¸¿©µµ ¼ÓÀ¸·Î´Â ¸»½éÀÇ ¼ÒÁö°¡ ±²ÀåÈ÷ ¸¹Àº »ý¼ºÀÚÀÌ´Ù. ¾î¶² °æ
¿ì¿¡ ¹®Á¦°¡ µÇ´Â°¡ ÇÏ¸é °´Ã¼ ³»¿¡¼ µ¿ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ ÇÒ´çÇؼ »ç¿ëÇÒ ¶§
°°Àº ¸Þ¸ð¸® ¿µ¿ªÀ» µÎ °´Ã¼°¡ µ¿½Ã¿¡ Æ÷ÀÎÆ®ÇÑ´Ù´Â Á¡ÀÌ´Ù. ¹°·Ð ÇØ°áÃ¥µµ ÀÖ
´Ù.
³ª. Æı«ÀÚ
»ý¼ºÀÚ¿Í ¹Ý´ëµÇ´Â Æı«ÀÚ(destructor)¶ó´Â °Íµµ ÀÖ´Ù. Ŭ·¡½º¿¡ ÀÇÇØ »ý¼ºµÈ
objectµµ º¯¼öÀ̹ǷΠ»ý¼ºµÈ ÈÄ¿¡ Åë¿ë ¹üÀ§¸¦ ¹þ¾î³ª¸é ÀÚµ¿ÀûÀ¸·Î ¼Ò¸êµÈ´Ù.
»ý¼ºµÉ ¶§ ´Ù¸¥ º¯¼öµé°ú´Â ´Þ¸® Ưº°ÇÑ ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Ưº°ÇÑ ¹æ¹ýÀ¸·Î ÃÊ
±âȸ¦ ÇÏ¿´À¸¹Ç·Î ¼Ò¸êµÉ ¶§µµ ÀÏ¹Ý º¯¼ö¿Í´Â ´Ù¸¥ Ưº°ÇÑ ¹æ¹ýÀ¸·Î ¼Ò¸êµÇ¾î
¾ß ÇÒ °æ¿ì°¡ ÀÖ´Ù. À̶§ °´Ã¼ÀÇ ¼Ò¸êÀ» ´ã´çÇÏ´Â ÇÔ¼ö¸¦ Æı«ÀÚ¶ó°í ÇÑ´Ù.
»ý¼ºÀÚ°¡ Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼öÀÓ°ú ¸¶Âù°¡Áö·Î Æı«ÀÚµµ Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼öÀÌ
¸ç À̸§Àº Ŭ·¡½º À̸§ ¾Õ¿¡ '~'¸¦ ºÙÀÎ °ÍÀÌ µÈ´Ù. Áï Position Ŭ·¡½ºÀÇ ÆÄ
±«ÀÚ´Â ~Position()ÀÌ´Ù. »ý¼ºÀÚ°¡ °´Ã¼°¡ »ý¼ºµÉ ¶§ ÀÚµ¿À¸·Î È£ÃâµÊ°ú ¸¶Âù
°¡Áö·Î Æı«ÀÚ´Â °´Ã¼°¡ Åë¿ë ¹üÀ§¸¦ ¹þ¾î³ª ¸Þ¸ð¸®·ÎºÎÅÍ Ãß¹æ´çÇÒ ¶§ ÀÚµ¿À¸
·Î È£ÃâµÈ´Ù. ±×·¯³ª Æı«ÀÚ´Â »ý¼ºÀÚ ¸¸ÅÀ̳ª ºó¹øÇÏ°Ô »ç¿ëµÇÁö´Â ¾ÊÀ¸¸ç
»ý¼ºÀÚ¿¡¼ µ¿ÀûÀ¸·Î ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏÁö ¾Ê°Å³ª °´Ã¼ ¼Ò¸ê½Ã Ưº°ÇÑ Á¶Ä¡°¡ ÇÊ
¿ä¾ø´Ù¸é ¾ø¾îµµ ¹«°üÇÏ´Ù. Æı«ÀÚ°¡ ²À ÇÊ¿äÇÑ °æ¿ì¸¦ º¸ÀÚ. ´ÙÀ½ ¿¹Á¦¿¡ ÆÄ
±«ÀÚÀÇ ±âº»ÀûÀÎ ¸ð¾çÀ» º¸¿´´Ù.
#include <iostream.h>
#include <conio.h>
#include <string.h>
class Str {
private:
char *name;
public:
Str(char *); //
»ý¼ºÀÚ
~Str(); //
Æı«ÀÚ
void outstr()
{ cout << name << '\n'; }
};
Str::Str(char *initstr) // »ý¼ºÀÚ¿¡¼ ¸Þ¸ð¸®¸¦ µ¿ÀûÀ¸·Î ÇÒ´ç
{
name= new char[strlen(initstr)+1];
strcpy(name,initstr);
}
Str::~Str() //
Æı«ÀÚ¿¡¼ ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ÇØÁ¦
{
delete name;
}
void main()
{
Str you("Han Sung An");
clrscr();
you.outstr();
} //
¿©±â¼ °´Ã¼ you°¡ ¼Ò¸êµÇ¸ç Æı«ÀÚ È£Ãâ
ÀÌ ¿¹Á¦¿¡¼ »ç¿ëÇϴ Ŭ·¡½º StrÀº ¹®ÀÚ¿ Æ÷ÀÎÅÍ Çϳª¸¸À» µ¥ÀÌÅÍ ¸â¹ö·Î
°¡Áö¸ç »ý¼ºÀÚ, Æı«ÀÚ ±×¸®°í ¹®ÀÚ¿À» Ãâ·ÂÇÏ´Â outstrÀ» ¸â¹ö ÇÔ¼ö·Î °¡Áö
°í ÀÖ´Ù. ¿ì¼± Ŭ·¡½ºÀÇ Àüü Å©±â°¡ 2¹ÙÀÌÆ®ÀÓÀ» ÀÌÇØÇÏÀÚ. Ŭ·¡½ºÀÇ Å©±â´Â
µ¥ÀÌÅÍ ¸â¹öµéÀÇ Å©±âÀÇ ÇÕÀ̹ǷΠÆ÷ÀÎÅÍ º¯¼ö ÇϳªÀÇ Å©±âÀÎ 2¹ÙÀÌÆ®°¡ StrŬ
·¡½ºÀÇ Å©±â°¡ µÈ´Ù. Á÷Á¢ cout << sizeof(Str);À» Çغ¸¸é ¾Ë ¼ö ÀÖ´Ù. ¹°·Ð L
arge ¸ðµ¨À̶ó¸é ´ç¿¬È÷ 4¹ÙÀÌÆ®°¡ µÉ °ÍÀÌÁö¸¸ ¸»ÀÌ´Ù. Ŭ·¡½º StrÀº »ç¶÷ÀÇ
À̸§À» ±â¾ïÇÏ°í Ãâ·ÂÇÒ ¸ñÀûÀ¸·Î ¸¸µé¾îÁ³´Ù.
»ç¶÷ÀÇ À̸§À» ±â¾ïÇϱâ À§Çؼ´Â ¹®ÀÚ ¹è¿À» »ç¿ëÇÏ´Â ¹æ¹ý°ú ¹®ÀÚÇü Æ÷ÀÎ
Å͸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Àִµ¥ ¿©±â¼´Â ²À ÇÊ¿äÇÑ ¸¸Å¸¸ ¸Þ¸ð¸®¸¦ »ç¿ëÇϱâ
À§ÇØ ¹®ÀÚÇü Æ÷ÀÎÅ͸¦ »ç¿ëÇÑ´Ù. ½ÇÁ¦ÀÇ ¹®ÀÚ¿Àº ¸Þ¸ð¸®ÀÇ ¾îµò°¡¿¡ ÇÒ´çÀ»
Çؼ ÀúÀåÇÏ°í °´Ã¼´Â ±× ¸Þ¸ð¸®ÀÇ ¹øÁö¸¸À» °¡Áö°í ÀÖ´Â ¹æ¹ýÀÌ´Ù. ½ÇÁ¦ ¹®ÀÚ
¿ÀÌ °´Ã¼ ³»¿¡ Á¸ÀçÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ±×·¡¼ °´Ã¼°¡ ¸¸µé¾îÁú ¶§ »ý¼ºÀÚ¿¡¼
¹®ÀÚ¿À» ´ãÀ» ¸Þ¸ð¸®¸¦ new ¿¬»êÀÚ¸¦ »ç¿ëÇؼ µ¿ÀûÀ¸·Î ÇÒ´ç¹Þ´Â´Ù. ÇÒ´çÀ»
¹Þ´Â ¸Þ¸ð¸®ÀÇ Å©±â´Â Àμö·Î ÀüÇØÁø ÃʱâÈ ¹®ÀÚ¿ÀÇ Å©±âº¸´Ù Çϳª ´õ Ä¿¾ß
ÇÑ´Ù(strlen(initstr)+1). ¿Ö³ÄÇϸé ÁÖ¾îÁø ¹®ÀÚ¿ ¿Ü¿¡µµ null ¹®ÀÚ¸¦ Æ÷ÇÔÇØ
¾ß Çϱ⠶§¹®ÀÌ´Ù.
ÀÌ·¸°Ô ÇÒ´çÇÑ ¸Þ¸ð¸® ¹øÁö¸¦ ¹®ÀÚ Æ÷ÀÎÅÍÇü µ¥ÀÌÅÍ ¸â¹öÀÎ name¿¡°Ô ÁÖ°í ±×
¹øÁö¿¡ Àμö·Î ÀüÇØÁø ÃʱâÈ ¹®ÀÚ¿À» º¹»çÇÏ¸é µÉ °ÍÀÌ´Ù. ¿©±â±îÁöÀÇ ¸Þ¸ð
¸® ¸ð¾çÀº ´ÙÀ½°ú °°´Ù.
you °´Ã¼
¦£¦¡¦¡¦¡¦¤
¦¢ ¦§¦¡¦¡¦¡¦¡¦¡¦¤
¦¦¦¡¦¡¦¡¦¥ ¦¢
\¦¢/
new ¿¬»êÀÚ°¡ µ¿ÀûÀ¸·Î ÇÒ´çÇØÁØ ¸Þ¸ð¸®
¦¡¦¡¦¡¦¡¦¡¦¡¦¡
HAN
SUNG AN
¦¡¦¡¦¡¦¡¦¡¦¡¦¡
"Han Sung An"À̶ó´Â ¹®ÀÚ¿ÀÌ ÀúÀåµÈ ¸Þ¸ð¸® °ø°£Àº new ¿¬»êÀÚ¿¡ ÀÇÇØ µ¿Àû
À¸·Î ÇÒ´çµÈ ¸Þ¸ð¸®ÀÌ¸ç ½ÇÁ¦ ±× ¹øÁö°¡ ¾îµðÀÎÁö´Â ¾Ë ¼ö ¾øÀ¸³ª ¾î·µç ±×
¹øÁö¸¦ Str Ŭ·¡½ºÀÇ µ¥ÀÌÅÍ ¸â¹öÀÎ nameÀÌ °®°Ô µÈ´Ù. À̶§ µ¿ÀûÀ¸·Î ÇÒ´çµÈ
¸Þ¸ð¸®´Â you °´Ã¼¿Í ¹°¸®ÀûÀ¸·Î ¿¬°üÀÌ ¾øÀ¸¸ç ´Ù¸¸ you °´Ã¼ÀÇ ¸â¹öÀÎ name
¿¡ ÀÇÇØ Æ÷ÀÎÆ®µÇ´Â ³í¸®Àû °ü°è°¡ ÀÖÀ» »ÓÀÌ´Ù. ÇÒ´çµÈ ¸Þ¸ð¸®´Â °´Ã¼ ¿ÜºÎ
¿¡ º°µµ·Î Á¸ÀçÇÏ´Â °ÍÀÌ´Ù.
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------