»ý¼ºÀÚ´Â ÁÖ·Î ¸â¹ö º¯¼öÀÇ °ªÀ» ¿øÇÏ´Â °ªÀ¸·Î ´ëÀÔÇÏ´Â ÀÛ¾÷À» ÇÏÁö¸¸ ±× ¿Ü °´Ã¼°¡ µ¿ÀÛÇϴµ¥ ÇÊ¿äÇÑ ¸ðµç ÃʱâÈ Ã³¸®¸¦ ´ã´çÇϱ⵵ ÇÑ´Ù. ¿¹¸¦ µé¾î ³×Æ®¿öÅ© Åë½ÅÀ» ÇÏ´Â °´Ã¼ÀÇ °æ¿ì ÀÌ °´Ã¼°¡ µ¿ÀÛÇÏ·Á¸é ³×Æ®¿öÅ© ¿¬°áÀ» ¸ÕÀú ÇØ¾ß ÇÏ¸ç µ¥ÀÌÅÍ º£À̽º¸¦ ¾×¼¼½ºÇÏ´Â °´Ã¼¶ó¸é ¼¹ö¿Í ¿¬°áÇØ¾ß Çϴµ¥ ÀÌ·± µ¿ÀÛ È¯°æ Ãʱâȵµ »ý¼ºÀÚÀÇ ÀÓ¹«¿¡ ¼ÓÇÑ´Ù. »ý¼ºÀÚ¸¦ ÀÌ·± ¿ëµµ·Î »ç¿ëÇÏ´Â ¿¹´Â ÀÌ¹Ì ¾Õ¿¡¼ º» ÀûÀÌ Àִµ¥ RandNumOop ¿¹Á¦ÀÇ RandNum»ý¼ºÀÚÀÇ Äڵ带 º¸ÀÚ.
class RandNum
{
public:
RandNum() { randomize(); }
RandNum °´Ã¼´Â ³¼ö¸¦ ĸ½¶ÈÇϴµ¥ ³¼ö°¡ ¹«ÀÛÀ§·Î »ý¼ºµÇ·Á¸é randomize ÇÔ¼ö·Î ³¼ö ¹ß»ý±â¸¦ ¸ÕÀú ÃʱâÈÇØ¾ß ÇÑ´Ù. ÀÌ ÀÛ¾÷À» »ý¼ºÀÚ°¡ ´ã´çÇÔÀ¸·Î½á °´Ã¼¸¦ »ý¼ºÇÏ´Â Áï½Ã ³¼ö ¹ß»ý±â°¡ ÃʱâȵȴÙ. ÀÌ¿Ü¿¡ ÇÊ¿äÇÑ ¹öÆÛ¸¦ µ¿ÀûÀ¸·Î ÇÒ´çÇϰųª °´Ã¼°¡ »ç¿ëÇÏ´Â ÆÄÀÏÀ» ¿ÀÇÂÇÏ´Â Àϵµ »ý¼ºÀÚÀÇ ¸òÀÌ´Ù. ¿äÄÁµ¥ »ý¼ºÀÚ´Â °´Ã¼°¡ Á¦´ë·Î µ¿ÀÛÇϱâ À§ÇÑ ¸ðµç 󸮸¦ ´ã´çÇÏ´Â ÇÔ¼öÀÌ´Ù.
»ý¼ºÀÚ°¡ °´Ã¼ ÀÚüÀÇ ÃʱâÈ¿Ü¿¡ ¿ÜºÎ ȯ°æ±îÁö ÃʱâÈÇϱ⠶§¹®¿¡ °´Ã¼°¡ »ç¶óÁú ¶§ ¹Ý´ëÀÇ Ã³¸®¸¦ ÇÒ ÇÔ¼öµµ ÇÊ¿äÇÏ´Ù. °´Ã¼³ª ¸Þ¸ð¸® ¶Ç´Â ÇÁ·Î±×·¥ µî ÄÄÇ»Å;ȿ¡¼ ¿òÁ÷ÀÌ´Â ¸ðµç °ÍµéÀº Ç×»ó ÀÚ½ÅÀÌ »ý¼ºµÇ±â ÀüÀÇ »óÅ·Πȯ°æÀ» µ¹·Á ³õÀ» Àǹ«°¡ ÀÖ´Ù. °´Ã¼°¡ Åë½ÅÀ» À§ÇØ ³×Æ®¿öÅ© ¿¬°áÀ» Çß´Ù¸é ÀÚ½ÅÀÌ »ç¶óÁú ¶§ ÀÌ ¿¬°áÀ» ²÷¾î¾ß Çϸç ÇÒ´çµÈ ¸Þ¸ð¸®´Â ÇØÁ¦ÇØ¾ß ÇÑ´Ù.
ÀÌ·¯ÇÑ µÞ󸮸¦ Çϴ Ưº°ÇÑ ¸â¹ö ÇÔ¼ö¸¦ Æı«ÀÚ(Destructor)¶ó°í ÇÏ¸ç °´Ã¼°¡ ¼Ò¸êµÉ ¶§ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ ÀÚµ¿À¸·Î È£ÃâµÈ´Ù. Æı«ÀÚÀÇ À̸§Àº Ŭ·¡½º À̸§¾Õ¿¡ ~¸¦(tilde¶ó°í Àд´Ù) ºÙÀÎ °ÍÀ¸·Î °íÁ¤µÇ¾î ÀÖÀ¸¸ç Àμö¿Í ¸®ÅÏ°ªÀº °¡ÁöÁö ¾Ê´Â´Ù. ´ÙÀ½ ¿¹Á¦´Â Æı«ÀÚÀÇ ¿¹¸¦ º¸¿© ÁØ´Ù.
¿¹ Á¦ : Person1 |
#include <Turboc.h>
class Person
{
private:
char *Name;
int Age;
public:
Person(const char *aName, int aAge) {
Name=new char[strlen(aName)+1];
strcpy(Name,aName);
Age=aAge;
}
~Person() {
delete [] Name;
}
void OutPerson() {
printf("À̸§ : %s ³ªÀÌ : %d\n",Name,Age);
}
};
void main()
{
Person Boy("À»Áö¹®´ö",25);
Boy.OutPerson();
}
Person Ŭ·¡½º´Â »ç¶÷À» Ç¥ÇöÇϴµ¥ À̸§°ú ³ªÀ̸¦ ¸â¹ö º¯¼ö·Î °¡Áø´Ù. ³ªÀÌ´Â Á¤¼ö°ªÀ̹ǷΠintÇüÀ̸é ÃæºÐÇÏÁö¸¸ À̸§ÀÇ °æ¿ì´Â ¹®ÀÚ¿À̹ǷΠ±× ±æÀ̸¦ ¿¹ÃøÇÒ ¼ö ¾ø´Ù. ´ëÇѹα¹ÀÇ »ç¶÷ À̸§Àº ±â²¯ÇØ¾ß 4ÀÚÀ̹ǷΠchar Name[9]; Á¤µµ¸é ÀÏ´Ü ÃæºÐÇÏ°ÚÁö¸¸ ¿Ü±¹ÀÎÀ̳ª º°³ª°Ô ±ä À̸§À» ÁÁ¾ÆÇÏ´Â »ç¶÷ÀÇ °æ¿ì´Â 4ÀÚ ÀÌ»óÀÇ À̸§À» °¡Áö´Â °æ¿ìµµ ÀÖ´Ù.
±×·¡¼ °íÁ¤µÈ ±æÀÌÀÇ ¹öÆÛ¸¦ »ç¿ëÇÏ´Â °ÍÀº À§ÇèÇϸç ÀԷµǴ À̸§ÀÇ ±æÀ̸¸Å ¹öÆÛ¸¦ µ¿ÀûÀ¸·Î ÇÒ´çÇØ¾ß ÇÑ´Ù. »ý¼ºÀÚ´Â Àμö·Î Àü´ÞµÈ À̸§ÀÇ ±æÀ̸¸Å Name ¹öÆÛ¸¦ µ¿ÀûÀ¸·Î ÇÒ´çÇÏ¿© ÀÌ ¹öÆÛ¿¡ À̸§À» ÀúÀåÇϴµ¥ ÀÌ·± ½ÄÀ̸é "¾Æ¸®µû¿î ¹Ú¹Ì¿µ"À̳ª "·¹¿À³ª¸£µµ µðÄ«ÇÁ¸®¿À"°°Àº ±ä À̸§µµ ¾ó¸¶µçÁö Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. »ý¼ºÀÚ¿¡¼ º°µµÀÇ ¹öÆÛ¸¦ Á÷Á¢ ÇÒ´çÇßÀ¸¹Ç·Î NameÀÌ °¡¸®Å°´Â ¹öÆÛ´Â °´Ã¼ ³»ºÎ¿¡ ÀÖÁö ¾Ê°í ¿ÜºÎÀÇ Èü¿¡ µû·Î Á¸ÀçÇÑ´Ù. °´Ã¼´Â Name ¸â¹ö¸¦ ÅëÇØ À̸§ÀÌ ÀúÀåµÇ¾î ÀÖ´Â ¸Þ¸ð¸® ÁÖ¼Ò¸¦ °¡¸®Å°°í ÀÖÀ» »ÓÀÌ´Ù.
ÀÌ »óÅ¿¡¼ °´Ã¼°¡ Æı«µÇ¸é °´Ã¼°¡ Á¡À¯ÇÏ°í ÀÖ´ø ¸ðµç ¸Þ¸ð¸®´Â ÀÚµ¿À¸·Î ÇØÁ¦µÈ´Ù. Boy°´Ã¼´Â main ÇÔ¼öÀÇ Áö¿ªº¯¼öÀ̹ǷΠmainÀÌ Á¾·áµÉ ¶§ Æı«µÇ´Âµ¥ À̶§ Name¸â¹ö¿Í Age¸â¹ö°¡ Â÷ÁöÇÏ°í ÀÖ´Â 8¹ÙÀÌÆ®°¡ ÇØÁ¦µÉ °ÍÀÌ´Ù. Name ¸â¹ö ÀÚü´Â ÇØÁ¦µÇÁö¸¸ NameÀÌ °¡¸®Å°°í ÀÖ´Â ÈüÀÇ ¸Þ¸ð¸®´Â µ¿ÀûÀ¸·Î ÇÒ´çµÈ °ÍÀ̹ǷΠÀÚµ¿À¸·Î ÇØÁ¦µÇÁö ¾Ê´Â´Ù. ±×·¡¼ °´Ã¼°¡ Æı«µÉ ¶§ ¹Ýµå½Ã Á÷Á¢ ÇØÁ¦ÇØ¾ß Çϸç ÀÌ·± 󸮸¦ ÇÏ´Â ÇÔ¼ö°¡ ¹Ù·Î Æı«ÀÚÀÌ´Ù. ¿¹Á¦ÀÇ ~Person Æı«ÀÚ´Â Name ¸â¹ö°¡ Â÷ÁöÇÏ°í ÀÖ´Â ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÑ´Ù. NameÀÌ new [ ]·Î ÇÒ´çµÇ¾úÀ¸¹Ç·Î ÇØÁ¦ÇÒ ¶§´Â delete [ ]¸¦ ¾´´Ù.
Æı«ÀÚ´Â °´Ã¼°¡ »ç¶óÁú ¶§ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ ÀÚµ¿À¸·Î È£ÃâµÇ´Âµ¥ °´Ã¼°¡ ¹Ù²ã ³õÀº ȯ°æÀ» ¿ø·¡´ë·Î µ¹·Á ³õ°Å³ª ÇÒ´çÇÑ ÀÚ¿øÀ» ȸ¼öÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù. Position Ŭ·¡½º´Â Æı«µÉ ¶§ Ưº°È÷ ÇÒ ÀÏÀÌ ¾øÀ¸¹Ç·Î Æı«ÀÚ°¡ ºÒÇÊ¿äÇÏÁö¸¸ Person Ŭ·¡½º´Â »ý¼ºÀÚ¿¡¼ ¸Þ¸ð¸®¸¦ µ¿ÀûÀ¸·Î ÇÒ´çÇϹǷΠÀÌ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÒ Æı«ÀÚ°¡ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. ¸¸¾à Æı«ÀÚ°¡ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù¸é ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ¾Æ¹«µµ ÇØÁ¦ÇÏÁö ¾ÊÀ¸¹Ç·Î ¸Þ¸ð¸® ´©¼ö°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù.