27-1-¶ó.ĸ½¶È­ ¹æ¹ý

°´Ã¼ÀÇ Á¤º¸Áß »ç¿ëÀÚ°¡ °ü½ÉÀ» °¡ÁöÁö ¾Ê´Â Á¤º¸¸¦ ¿Ö ¼û°Ü¾ß ÇÏ´ÂÁö, Á¤º¸¸¦ ¼û±æ ¶§ ¾î¶² ÀÌÁ¡ÀÌ ÀÖ´ÂÁö¸¦ ¿¬±¸ÇØ º¸¾Ò´Ù. ±×·¸´Ù¸é ¾î¶² Á¤º¸¸¦ ¼û°Ü¾ß ÇÏ°í °ø°³ÇØ¾ß ÇÒ Á¤º¸´Â ¾î¶² °ÍÀϱî? ÀÌ Áú¹®¿¡ ´ëÇÑ ´äÀº ¾ÆÁÖ ¿ø·ÐÀûÀε¥ ¼û±æ¸¸ÇÑ °Ç ¼û±â°í °ø°³ÇÒ ÇÊ¿ä°¡ ÀÖ´Â °ÍÀº °ø°³ÇØ¾ß ÇÑ´Ù. Áï Á¤º¸ ÀºÆó¿¡ ´ëÇÑ Àý´ëÀûÀÎ °ø½ÄÀº ¾øÀ¸¸ç °´Ã¼ÀÇ »óȲ¿¡ µû¶ó ÀÚÀ¯·Ó°Ô ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

¸ðµç °´Ã¼¿¡ ÀûÇÕÇÑ Á¤º¸ ÀºÆó °ø½ÄÀº ¾øÁö¸¸ ´ëÃæÀÇ °¡À̵å¶óÀÎÀ» Á¦½ÃÇØ º¸¸é ÀÌ·¸´Ù. ¸â¹ö º¯¼ö´Â °´Ã¼ÀÇ »óŸ¦ ÀúÀåÇÏ´Â Áß¿äÇÑ Á¤º¸µéÀ̹ǷΠ¿ÜºÎ¿¡¼­ ÇԺηΠº¯°æÇÏÁö ¸øÇϵµ·Ï ¼û±â°í ¸â¹ö ÇÔ¼ö´Â ¿ÜºÎ¿Í ÀÎÅÍÆäÀ̽º¸¦ ÀÌ·ç´Â ¼ö´ÜÀ̹ǷΠ°ø°³ÇÑ´Ù. ¼û°ÜÁø ¸â¹ö º¯¼ö´Â °ø°³µÈ ¸â¹ö ÇÔ¼ö¸¦ ÅëÇØ Á¤ÇØÁø ¹æ¹ýÀ¸·Î¸¸ ¾×¼¼½ºÇϵµ·Ï ÇÏ´Â °ÍÀÌ º¸ÅëÀÌ´Ù. ¹°·Ð Ç×»ó ±×·¸Áö´Â ¾Ê¾Æ¼­ ¾î¶² ¸â¹ö º¯¼ö´Â °ø°³ÇÏ´Â °ÍÀÌ ´õ Æí¸®ÇÑ °æ¿ìµµ ÀÖ°í ³»ºÎÀûÀÎ µ¿ÀÛ¿¡¸¸ »ç¿ëµÇ´Â ¸â¹ö ÇÔ¼ö´Â ¼û±æ ¼öµµ ÀÖ´Ù.

´ÙÀ½ ¿¹Á¦ÀÇ Student Ŭ·¡½º´Â Çлý ÇÑ ¸íÀÇ Çйø, À̸§, Á¡¼ö¸¦ ÀúÀåÇϴµ¥ Á¤º¸¸¦ ÀºÆóÇÏ´Â ¿©·¯ °¡Áö ±â¹ýµéÀ» º¸¿©ÁØ´Ù.

 

¿¹ Á¦ : InfoHide

#include <Turboc.h>

 

class Student

{

private:

     int StNum;

     char Name[16];

     unsigned Score;

     BOOL TestScore(int aScore) {

          return (aScore >= 0 && aScore <= 100);

     }

 

public:

     Student(int aStNum) { StNum=aStNum;Name[0]=0;Score=0; }

     int GetStNum() { return StNum; }

     const char *GetName() { return Name; }

     void SetName(char *aName) { strncpy(Name,aName,15); }

     unsigned GetScore() { return Score; }

     void SetScore(int aScore) {

          if (TestScore(aScore))

              Score=aScore;

     }

};

 

void main()

{

     Student Kim(8906123);

     Kim.SetName("±èõÀç");

     Kim.SetScore(99);

     printf("Çйø=%d, À̸§:%s, Á¡¼ö:%d\n",

          Kim.GetStNum(),Kim.GetName(),Kim.GetScore());

}

 

ÀÌ Å¬·¡½º´Â ÇйøÀ» ÀúÀåÇÏ´Â StNum, À̸§À» ÀúÀåÇÏ´Â Name°ú Á¡¼ö¸¦ ÀúÀåÇÏ´Â Scoreµî ¼¼ °³ÀÇ ¸â¹ö º¯¼ö¸¦ °¡Áö°í ÀÖ´Ù. ¸â¹ö º¯¼ö´Â ¸ðµÎ private ¿µ¿ª¿¡ ¼±¾ðµÇ¾î ÀÖÀ¸¹Ç·Î ¿ÜºÎ¿¡¼­ ÀÌ °ªÀ» ÀÐÀ» ¼ö ¾øÀ¸¸ç º¯°æÇÒ ¼öµµ ¾ø´Ù. ´ë½Å ÀÌ ¸â¹ö º¯¼öµéÀÇ °ªÀ» ÀÐ°í ¾²´Â Get, Set µîÀÇ ¾×¼¼½º ÇÔ¼öµéÀÌ °ø°³µÇ¾î ÀÖ¾î Ŭ¶óÀ̾ðÆ®´Â ¾×¼¼½º ÇÔ¼ö¸¦ ÅëÇØ °´Ã¼ÀÇ °ªÀ» Á¶»çÇϰųª º¯°æÇÒ ¼ö ÀÖ´Ù.

°ªÀ» Á¶»çÇÏ´Â Get ÇÔ¼öµéÀº ´ëÀÀµÇ´Â ¸â¹ö º¯¼öÀÇ °ªÀ» Àдµ¥ ÀÌ ¿¹Á¦ÀÇ Get ÇÔ¼öµéÀº ¸ðµÎ ´Ü¼øÇÑ return¹®¸¸ °¡Áø´Ù. ÇÊ¿äÇÒ °æ¿ì µÑ ÀÌ»óÀÇ °ªÀ» °è»êÇÑ °á°ú³ª ½Ç½Ã°£À¸·Î Á¶»çµÈ °ªÀ» µ¹·ÁÁÙ ¼öµµ ÀÖ´Ù. Set ÇÔ¼öµéÀº ´ëÀÀµÇ´Â ¸â¹ö º¯¼öÀÇ °ªÀ» º¯°æÇÑ´Ù. º°´Ù¸¥ ±ÔÄ¢ÀÌ ¾ø´Ù¸é ´Ü¼øÇÑ ´ëÀÔ¹®¸¸ °¡Áö°ÚÁö¸¸ Åë»ó Àü´ÞµÈ Àμö°¡ ±ÔÄ¢¿¡ ¸Â´ÂÁö Á¶°ÇÀ» µûÁ® º¸°í ÇÕ¸®ÀûÀÎ °ª¸¸ ¹Þ¾ÆµéÀδÙ.

À̸§À» º¯°æÇÏ´Â SetNameÇÔ¼ö´Â Àμö·Î Àü´ÞµÈ aNameÀ» Name ¸â¹ö º¯¼ö¿¡ º¹»çÇ쵂 strncpy ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¹®ÀÚ¿­ÀÌ 15ÀÚ¸¦ ³ÑÁö ¾Êµµ·Ï ÇÔÀ¸·Î½á ½º½º·ÎÀÇ ¹«°á¼ºÀ» ÁöŲ´Ù. ¸¸¾à NameÀÌ °ø°³µÈ ¸â¹ö¶ó¸é ¿ÜºÎ¿¡¼­ strcpy(Kim.Name,"¿¹»Ú°í »ç¶û½º·¯¿î ±è°øÁÖ"); µûÀ§ÀÇ ¸í·ÉÀ¸·Î ÀÌ °´Ã¼¸¦ Çѹ濡 ¾û¸ÁÀ¸·Î ¸¸µé¾î ¹ö¸± ¼ö ÀÖ´Ù. »ç¿ëÀÚÀÇ ½Ç¼ö¿¡ ´ëÇؼ­µµ ²à²àÇÏ°Ô ¹öƼ±â À§ÇØ NameÀº ¼û±â°í ¹öÆÛ ±æÀ̸¸Å­¸¸ º¹»çÇÏ´Â ¾ÈÀüÇÑ SetName¸¸ °ø°³ÇÑ °ÍÀÌ´Ù.

Name ¸â¹öÀÇ °ªÀ» Á¶»çÇÏ´Â GetName ÇÔ¼öµµ »ó¼ö Áö½Ã Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÔÀ¸·Î½á NameÀ» ÀÐÀ» ¼ö¸¸ ÀÖ°Ô ÇÏ¸ç ¾²Áö´Â ¸øÇϵµ·Ï ±ÝÁöÇÑ´Ù. ¸¸¾à ÀÌ ÇÔ¼ö°¡ const°¡ ¾Æ´Ñ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÒ °æ¿ì ´ÙÀ½°ú °°Àº Äڵ尡 °¡´ÉÇØÁö¸ç ÀÌ·¸°Ô µÇ¸é °´Ã¼´Â ¶Ç ´Ù½Ã À§ÇèÇÑ »óȲ¿¡ ³ëÃâµÉ °ÍÀÌ´Ù.

 

strcpy(Kim.GetName(),"¸ÚÁö°í ¿ë°¨ÇÏ°í ¾¿¾¿ÇÑ ±è¿ÕÀÚ");

 

ÀÏ´Ü Æ÷ÀÎÅ͸¦ ¾ò±â¸¸ ÇÏ¸é °¡¸®Å°´Â ´ë»óü»Ó¸¸ ¾Æ´Ï¶ó ±× ÁÖº¯±îÁöµµ ¸¶À½´ë·Î ÀÐ°í ¾µ ¼ö ÀÖÀ¸¹Ç·Î ºÎÁÖÀÇÇÑ »ç¿ëÀ¸·ÎºÎÅÍ ¹æ¾îÇÒ ¹æ¹ýÀÌ ¾ø´Ù. ±×·¡¼­ Name ¸â¹ö º¯¼ö´Â öÀúÇÏ°Ô ¼û°Ü ¿ÜºÎ·ÎºÎÅÍ º¸È£ÇÏ°í ÀÌ ¸â¹ö¸¦ ÀÐ°í ¾µ ¶§´Â Get/Set ¾×¼¼½º ÇÔ¼ö¸¦ °æÀ¯ÇÏ¿© Ŭ·¡½º ÀÛ¼ºÀÚ°¡ ¹Ì¸® Á¤ÇØ ³õÀº ±ÔÄ¢À» µû¶ó¾ß ÇÑ´Ù.

SetScore ÇÔ¼ö´Â Á¡¼ö¸¦ ÀúÀåÇÏ´Â Score ¸â¹ö º¯¼öÀÇ °ªÀ» º¯°æÇϴµ¥ Á¡¼öÀÇ °¡´ÉÇÑ ¹üÀ§´Â 0~100±îÁö·Î Á¦ÇѵȴÙ. Àμö·Î Àü´ÞµÈ aScore°¡ ÀÌ ¹üÀ§¿¡ ÀÖ´ÂÁö ¸ÕÀú Á¡°ËÇØ º¸°í À¯È¿ÇÑ Á¡¼öÀÏ ¶§¸¸ °ªÀ» ´ëÀÔÇÏ¸ç ±×·¸Áö ¾ÊÀ¸¸é ¹«½ÃÇÑ´Ù. Á¡¼öÀÇ ¹üÀ§¸¦ Á¡°ËÇÏ´Â TestScore ÇÔ¼ö´Â ¿ÜºÎ¿¡¼­ Á÷Á¢ È£ÃâÇÏÁö ¾ÊÀ¸¹Ç·Î ÇÁ¶óÀ̺ñÆ® ¿µ¿ª¿¡ µÎ¾ú´Ù. ¸¸¾à Á¡¼öÀÇ ¹üÀ§¸¦ Á¡°ËÇϴ ȹ±âÀûÀÎ ¾Ë°í¸®ÁòÀÌ »õ·Î °³¹ßµÇ¾ú´Ù¸é(º°·Î ±×·² °Í °°Áö´Â ¾ÊÁö¸¸) ÀÌ ÇÔ¼ö´Â »ç¿ëÀÚÀÇ µ¿ÀǾøÀÌ ¾ðÁ¦µçÁö ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.

ÇйøÀ» ÀúÀåÇÏ´Â StNum¸â¹ö º¯¼ö´Â »ý¼ºÀÚ¿¡¼­ ÃʱâÈ­µÇ¸ç Get ÇÔ¼ö¸¸ ÀÖ°í Set ÇÔ¼ö°¡ ¾ø´Ù. ±×·¯¹Ç·Î ¿ÜºÎ¿¡¼­ ÇйøÀ» ÀÐÀ» ¼ö´Â ÀÖÁö¸¸ ¾î¶² ¼ö¸¦ ¾²´õ¶óµµ ÇйøÀ» º¯°æÇÏÁö´Â ¸øÇÑ´Ù. Áï, ÀÌ ¸â¹ö´Â ÀÚ¿¬½º·´°Ô Àбâ Àü¿ëÀÇ Á¤º¸°¡ µÇ´Âµ¥ ÇйøÀÌ Àбâ Àü¿ëÀÎ °ÍÀº ³í¸®ÀûÀ¸·Î ÇÕ´çÇÏ´Ù. º°·Î ½Ç¿ë¼ºÀº ¾øÁö¸¸ ÇÊ¿äÇÏ´Ù¸é Get ÇÔ¼ö´Â »©°í Set ÇÔ¼ö¸¸ Á¦°øÇÏ´Â ¹æ¹ýÀ¸·Î ¾²±â Àü¿ëÀÇ Á¤º¸¸¦ ¸¸µå´Â °Íµµ ¹®¹ýÀûÀ¸·Î °¡´ÉÇÏ´Ù. ¸¸¾à Kim.StNum=1234; µûÀ§ÀÇ ÄÚµå·Î ¼û°ÜÁø ¸â¹ö¸¦ Àаųª ¾²·Á°í ½ÃµµÇϸé ÄÄÆÄÀÏ ¿¡·¯·Î 󸮵ȴÙ. ÄÄÆÄÀÏ ¿¡·¯´Â °³¹ßÁß¿¡ Áï½Ã ¾Ë ¼ö ÀÖÀ¸¹Ç·Î ¼öÁ¤Çϱ⠽±´Ù.

Student Ŭ·¡½ºÀÇ ¿¹¿¡¼­´Â º¼ ¼ö ¾øÁö¸¸ protected¶ó´Â ¾×¼¼½º ¼Ó¼ºÀ» »ç¿ëÇÏ¸é ¿ÜºÎ¿¡¼­´Â ÀÐÀ» ¼ö ¾ø°í »ó¼ÓµÈ Ŭ·¡½ºÀÇ °´Ã¼¿¡¼­´Â ÀÐÀ» ¼ö ÀÖ´Â ¸â¹ö¸¦ ¼±¾ðÇÒ ¼öµµ ÀÖ´Ù. protected´Â private¿Í publicÀÇ Áß°£ Á¤µµµÇ´Â ÀºÆó ¼öÁØÀε¥ ´ÙÀ½¿¡ »ó¼ÓÀ» °øºÎÇÒ ¶§ ´Ù½Ã ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ. »ó¼ÓÀ» ÇÏÁö ¾ÊÀ» °æ¿ì protected´Â private¿Í µ¿ÀÏÇÏ´Ù.