26-1-³ª.Æı«ÀÚ

»ý¼ºÀÚ´Â ÁÖ·Î ¸â¹ö º¯¼öÀÇ °ªÀ» ¿øÇÏ´Â °ªÀ¸·Î ´ëÀÔÇÏ´Â ÀÛ¾÷À» ÇÏÁö¸¸ ±× ¿Ü °´Ã¼°¡ µ¿ÀÛÇϴµ¥ ÇÊ¿äÇÑ ¸ðµç ÃʱâÈ­ 󸮸¦ ´ã´çÇϱ⵵ ÇÑ´Ù. ¿¹¸¦ µé¾î ³×Æ®¿öÅ© Åë½ÅÀ» ÇÏ´Â °´Ã¼ÀÇ °æ¿ì ÀÌ °´Ã¼°¡ µ¿ÀÛÇÏ·Á¸é ³×Æ®¿öÅ© ¿¬°áÀ» ¸ÕÀú ÇØ¾ß ÇÏ¸ç µ¥ÀÌÅÍ º£À̽º¸¦ ¾×¼¼½ºÇÏ´Â °´Ã¼¶ó¸é ¼­¹ö¿Í ¿¬°áÇØ¾ß Çϴµ¥ ÀÌ·± µ¿ÀÛ È¯°æ ÃʱâÈ­µµ »ý¼ºÀÚÀÇ ÀÓ¹«¿¡ ¼ÓÇÑ´Ù. »ý¼ºÀÚ¸¦ ÀÌ·± ¿ëµµ·Î »ç¿ëÇÏ´Â ¿¹´Â ÀÌ¹Ì ¾Õ¿¡¼­ º» ÀûÀÌ Àִµ¥ 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 Ŭ·¡½º´Â »ý¼ºÀÚ¿¡¼­ ¸Þ¸ð¸®¸¦ µ¿ÀûÀ¸·Î ÇÒ´çÇϹǷΠÀÌ ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÒ Æı«ÀÚ°¡ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. ¸¸¾à Æı«ÀÚ°¡ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù¸é ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ ¾Æ¹«µµ ÇØÁ¦ÇÏÁö ¾ÊÀ¸¹Ç·Î ¸Þ¸ð¸® ´©¼ö°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù.