| 1 | ÇÔ¼öÁߺ¹À̶õ? |
|
C++¿Í °°Àº °´Ã¼ÁöÇâ ¾ð¾î¿¡¼ ´ÙÇü¼ºÀ» Á¦°øÇØ ÁÖ±â À§ÇÑ ¹æ¹ý ÁßÀÇ Çϳª°¡ ´ÙÁß Á¤ÀÇÀÔ´Ï´Ù. ´ÙÁß Á¤ÀǶõ °°Àº À̸§À¸·Î ¿©·¯ °¡Áö ÀÏÀ» ÇÏ´Â °ÍÀº ¸»ÇÕ´Ï´Ù. C++¿¡¼´Â ÇÔ¼ö ´ÙÁß Á¤ÀÇ¿Í ¿¬»êÀÚ ´ÙÁß Á¤ÀÇ µî µÎ °¡Áö ´ÙÁß Á¤ÀǸ¦ Á¦°øÇØ ÁÝ´Ï´Ù. ÇÔ¼ö ´ÙÁß Á¤ÀÇ´Â °°Àº À̸§ÀÇ ÇÔ¼ö°¡ ¿©·¯ °³ Á¸ÀçÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÚ¹Ù¿¡¼´Â ¸Þ¼Òµå ´ÙÁß Á¤ÀÇÀ» Á¦°øÇØ ÁÖ°í ÀÖ½À´Ï´Ù. ±×·¸´Ù¸é ¸Þ¼ÒµåÀÇ À̸§ÀÌ °°´Ù¸é ¾î¶² °ÍÀ» ÀÌ¿ëÇÏ¿© °°Àº À̸§ÀÇ ¿©·¯ °³ÀÇ ¸Þ¼Òµå¸¦ ±¸º°ÇÒ ¼ö ÀÖÀ»±î¿ä? C++¿¡¼¿Í ¸¶Âù°¡Áö·Î ÀÚ¹Ù¿¡¼µµ °°Àº À̸§ÀÇ ¿©·¯ °³ÀÇ ¸Þ¼Òµå¸¦ ±¸º°Çϱâ À§ÇÏ¿© ¸Þ¼Òµå°¡ °®´Â ¸Å°³º¯¼öÀÇ °³¼ö¿Í ÀÚ·áÇüÀ» ÀÌ¿ëÇÏ¿© ±¸ºÐÇÕ´Ï´Ù. º¸Åë ÇÔ¼öÇÔ¼öÀÇ ´ÙÁßÁ¤ÀǸ¦ OverloadingÀ̶ó ºÎ¸¨´Ï´Ù. ÇÔ¼öÁߺ¹, Áߺ¹ÇÔ¼ö¶ó°í ºÎ¸£¸ç Åë»óÀûÀ¸·Î OverloadingÀ̶ó°í ÇÕ´Ï´Ù. À̰ÍÀº ÇϳªÀÇ À̸§À¸·Î ¿©·¯°³ÀÇ ÇÔ¼ö¸¦ ¸¸µç´Ù´Â ¶æÀ» ³»Æ÷Çϰí ÀÖ´Ù. °´Ã¼ÁöÇâ °³³ä¿¡¼ ¾ÆÁÖ À¯¿ëÇϱ⠶§¹®¿¡ À̰ÍÀ» »ç¿ëÇÏ´Â °ÍÀÏ °ÍÀÔ´Ï´Ù. ±×·¸´Ù¸é OverloadingÀº ¿Ö »ç¿ëÇÏ´Â °ÍÀϱî? |
| 2 | Áߺ¹ÇÔ¼ö(Overloading)À» »ç¿ëÇÏ´Â ÀÌÀ¯? |
|
Áߺ¹ÇÔ¼ö´Â ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â »ç¶÷À» ÆíÇÏ°Ô Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. Áï ÇÁ·Î±×·¡¸Ó´Â ±× ¸¸Å °í»ýÇÏ´Â °ÍÀÌ´Ù. º¸Åë Áߺ¹ÇÔ¼ö¸¦ ¼³¸íÇÒ ¶§ µÎ ÇÔ¼ö¸¦ ÇÕÇÏ´Â ÇÔ¼ö¸¦ ¿¹¸¦ µç´Ù. µÎÇÔ¼ö¸¦ ´õÇÒ ¶§ ¿ì¸®´Â ½±°Ô intÇü¸¸À» »ý°¢ÇÑ´Ù. µÎ °³ÀÇ »ó¼ö°ªÀÌ ´õÇØÁ®¼ ¶Ç´Ù¸¥ »ó¼ö°ªÀ» ¸®ÅÏÇÏ´Â °ÍÀ» »ý°¢ÇÒ °ÍÀÌ´Ù. À̰ÍÀº Áö±ØÈ÷ ´ç¿¬ÇÑ ÀÏÀÌ´Ù. ÇÏÁö¸¸ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â »ç¶÷ÀÔÀå¿¡¼ º»´Ù´Â À̰ÍÀº ¾ÆÁÖ ºÒÆíÇÑ ÀÏÀϰÍÀÌ´Ù. Ç×»ó int¸¸À» ´õÇÑ´Ù°í »ý°¢ÇÑ´Ù¸é À̰ÍÀº ¾ÆÁÖ ºÒÆíÇÒ °ÍÀÌ´Ù. ±×·¸±â ¶§¹®¿¡ ÇÁ·Î±×·¡¸Ó´Â float³ª doubleÀ» ´õÇÏ´Â ÇÔ¼ö¸¦ ¸¸µé¾î µÎ´Â °ÍÀÌ´Ù. ¾ð¾îÀÇ ±âº»ÀûÀΠƯ¼º»ó µ¥ÀÌÅÍÇüÀÌ ´Ù¸£¸é ÇÔ¼ö¶ÇÇÑ ´Ù½Ã ¸¸µé¾î¾ß ÇÑ´Ù. À̰ÍÀ» ÇϳªÀÇ À̸§À¸·Î ÇØ°áÇÏ´Â ¹æ¹ýÀÌ ¹Ù·Î Áߺ¹ÇÔ¼ö °³³äÀÇ ½ÃÀÛÀÌ´Ù. |
| 3 | Áߺ¹ÇÔ¼ö¿¡¼ ÁÖÀÇÇØ¾ß ÇÒ Á¡ |
|
À̸§ÀÌ °°Àº ÇÔ¼ö¶ó¸é ±×¸®°í »ç¿ëÀÚ°¡ ¾î¶²°ªÀ» ³ÖÀ»Áö ¸ð¸£´Â »óȲÀ̶ó¸é ¿ì¸®´Â »ç¿ëÀÚ°¡ ¾î¶°ÇÑ °ªÀ» ³Ö´õ¶ó°í 󸮵ǵµ·Ï ¸î°¡Áö °æ¿ìÀÇ ¼ö¸¦ ¸¸µé °ÍÀÌ´Ù. ÇÏÁö¸¸ ¸®Åϰª Áï, ƯÁ¤ µÎ ¼ö¸¦ ´õÇØ¼ ³ª¿À´Â °ªÀº ´Ù¸¥ µ¥ÀÌÅÍ Å¸ÀÔÀÌ µÉ °ÍÀÌ´Ù. ±×·¡¼ Áߺ¹ÇÔ¼ö¿¡¼´Â ¸®Åϰª¿¡ ´ëÇØ¼´Â ½Å°æÀ» ¾²Áö ¾Ê´Â´Ù. ±×·¸´Ù¸é Áߺ¹ÇÔ¼ö¿¡¼ Áß¿ä½ÃÇÏ´Â °ÍÀº ¹«¾ùÀϱî? ÇÔ¼öÀÇ À̸§ÀÌ °°¾Æ¾ß ÇÏ´Â °ÍÀº ³Ê¹«µµ ´ç¿¬ÇÑ °ÍÀÌ´Ù. ±×¸®°í Áߺ¹ÇÔ¼ö¿¡¼ °¡Àå ½Å°æÀ» ¾²´Â ºÎºÐÀº ¹Ù·Î »ç¿ëÀÚ°¡ ÀÔ·ÂÇÒ °ªÀÇ µ¥ÀÌÅÍ ÇüÀÌ´Ù. À̰ÍÀÌ ¹Ù·Î ¾î¶°ÇÑ Áߺ¹ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÒÁö¸¦ °áÁ¤ÇÏ´Â ÇÙ½ÉÀû ¿ä¼Ò°¡ µÈ´Ù. ¿©·¯°³ÀÇ Áߺ¹ÇÔ¼ö°¡ ÀÖÀ» ¶§ Áߺ¹ÇÔ¼öÁß ¾î¶²°ÍÀ» ¼±ÅÃÇØ¾ßÇÒÁö¸¦ °áÁ¤ÇÏ´Â ¹æ¹ýÀÌ´Ù. °á·ÐÀûÀ¸·Î, Áߺ¹ÇÔ¼ö´Â ÇÔ¼ö¿¡ ³Ö¾îÁÖ´Â ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍŸÀÔ°ú ¸Å°³º¯¼öÀÇ °¹¼ö·Î½á ¾î¶°ÇÑ Áߺ¹ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÒÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù. ÀÌ ¸»Àº ³Ê¹«³ª Áß¿äÇϱ⠶§¹®¿¡ ¿Ü¿ö µÎ´Â °ÍÀÌ ¸ÂÀ» °ÍÀÌ´Ù. Áߺ¹ÇÔ¼ö´Â ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍŸÀÔ°ú ¸Å°³º¯¼öÀÇ °¹¼ö·Î½á ±¸ºÐÇÑ´Ù. |
| 4 | Áߺ¹ÇÔ¼ö(Overloading)ÀÇ ¿¹Á¦ |
|
/* Áߺ¹ÇÔ¼ö(Overloading):ÇÑ Å¬·¡½º³»¿¡ °°Àº À̸§ÀÇ ÇÔ¼ö°¡ ¿©·¯°³ Á¸ÀçÇÏ´Â °ÍÀ» Çã¿ë Áߺ¹ÇÔ¼öÀÇ ±ÔÄ¢ 1. µ¥ÀÌÅÍŸÀÔÀÌ ´Þ¶ó¾ß ÇÑ´Ù. 2. parameterÀÇ °¹¼ö°¡ ´Þ¶ó¾ß ÇÑ´Ù. 3. parameterµéÀÇ data typeÀÌ ÃÖ¼ÒÇÑ Çϳª ÀÌ»ó ´Þ¶ó¾ß ÇÑ´Ù. Áï À̸»Àº Áߺ¹ÇÔ¼ö¸¦ ã¾Æ°¡´Â ¹æ¹ýÀº ÇÔ¼öÀÇ ¸Å°³º¯¼öÀÇ °¹¼ö¿Í ÇÔ¼öÀÇ ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î Àڽſ¡ ¸Â´Â ÇÔ¼ö¸¦ ã¾Æ°£´Ù. À̶§ ÁÖÀÇ ÇØ¾ßÇÒ °ÍÀº ÇÔ¼öÀÇ ¸®ÅÏŸÀÔ°ú´Â »ó°üÀÌ ¾ø´Ù. ÇÏÁö¸¸ ÇÔ¼öÀÇ À̸§Àº °°¾Æ¾ß ÇÑ´Ù. */
//Overloading¿¡ ´ëÇÑ ¿¹Á¦ÀÔ´Ï´Ù. class OverloadCalc
public class OverloadTest |
| °á°úÃâ·Â |
/* À§ÀÇ °á°ú´Â ´ÙÀ½°ú °°´Ù. int=8 float=0.3 |