[C++]°­ÁÂ(4)<--¹®¹ýÀÇ ¾ö°Ý¼º




³ª. µ¿ÀÏ À̸§ÀÇ ÇÔ¼ö Á¸Àç °¡´É

C¿¡¼­ º¯¼ö, ÇÔ¼ö, ű×, ·¹ÀÌºí µîÀº ¸ðµÎ À̸§À» °¡Áö°í Àֱ⠶§¹®¿¡ ´Ù¸¥
°Íµé°ú ¼­·Î ±¸ºÐÀÌ µÈ´Ù. ±¸ºÐµÇÁö ¾Ê°í¼­´Â ¸ðÈ£ÇÔ(ambiguity)ÀÌ ¹ß»ýÇϱâ
¶§¹®¿¡ ¹Ýµå½Ã ÇϳªÀÇ º¯¼ö, ÇÔ¼ö¿¡ À¯ÀÏÇÑ À̸§À» ÁÖ¾î¾ß Çϸç À̸§³¢¸® Áߺ¹
µÇ¾î¼­´Â ¾ÈµÈ´Ù.
¸¶Ä¡ ½ÖµÕÀÌ°¡ ¸ð¾çÀÌ °°Àºµ¥ À̸§±îÁö °°¾Æ ¹ö¸®¸é ¼­·Î ±¸ºÐÇϱⰡ °ï¶õÇÏ
±â ¶§¹®¿¡ ´Ù¸¥ À̸§À» ºÙ¿©ÁÖ´Â °Í°ú °°Àº ÀÌÄ¡ÀÌ´Ù. ÇÏÁö¸¸ C++¿¡¼­´Â ÇÔ¼ö
³¢¸® À̸§ÀÌ Áߺ¹µÇ¾îµµ »ó°ü¾ø´Â °æ¿ì°¡ ÀÖ´Ù. ºñ·Ï À̸§Àº °°´õ¶óµµ ÀμöÀÇ
°³¼ö°¡ ´Ù¸£°Å³ª ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÌ ´Ù¸£¸é ¼­·Î ±¸ºÐÀÌ °¡´ÉÇϱ⠶§¹®ÀÌ´Ù.
½ÖµÕÀÌ´õ¶óµµ Çϳª°¡ ¿©ÀÚ°í Çϳª°¡ ³²ÀÚ¸é ¶Ç´Â Å° Â÷ÀÌ°¡ Çö°ÝÇÏ´Ù¸é À̸§
ÀÌ °°¾Æµµ ±¸ºÐÀÌ µÇÁö ¾Ê´Â°¡. ÀÌ·¸°Ô ÇÔ¼ö°¡ °°Àº À̸§À¸·Î ¿©·¯°³ Áߺ¹µÇ¾î
Á¸ÀçÇÏ´Â °ÍÀÌ °¡´ÉÇÑ °ÍÀ» ´ÙÇü¼º(polymorphism)À̶ó ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

#include <iostream.h>

int add( int, int);
double add( double, double);

void main()
{
 int a,b;
 double c,d;
 a = 3;
 b = 4;
 c = 3.14;
 d = 2.25;
 cout << "add integer is " << add( a, b) << endl; // Á¤¼öÀÇ add È£Ãâ
 cout << "add real  is " << add( c, d) << endl; // ½Ç¼öÀÇ add È£Ãâ
}

int add( int a, int b)  // Á¤¼ö¸¦ Àμö·Î ÃëÇÏ´Â add ÇÔ¼ö
{
 return a + b;
}

double add( double c, double d) // ½Ç¼ö¸¦ Àμö·Î ÃëÇÏ´Â add ÇÔ¼ö
{
 return c + d;
}

add¶ó´Â À̸§ÀÇ ÇÔ¼ö°¡ µÎ °³ Á¸ÀçÇÏ°í ÀÖ´Ù. µÑ ´Ù ÀμöÀÇ °³¼ö´Â 2°³ÀÌÁö¸¸
ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÌ Çϳª´Â Á¤¼öÀÌ°í Çϳª´Â ½Ç¼öÀ̱⠶§¹®ÀÌ´Ù. main ÇÔ¼ö
¿¡¼­ óÀ½ add(a,b)¸¦ È£ÃâÇßÀ» ¶§ Àμö a,b°¡ Á¤¼öÀ̹ǷΠÀ̶§´Â Á¤¼ö¸¦ Àμö
·Î ÃëÇÏ´Â ÇÔ¼ö add¸¦ È£ÃâÇÏ°Ô µÇ°í µÎ ¹ø° add(c,d)°¡ È£ÃâµÉ ¶§´Â c,d°¡
½Ç¼öÀÓÀ» ±Ù°Å·Î ½Ç¼ö¸¦ Àμö·Î ÃëÇÏ´Â ÇÔ¼ö add¸¦ È£ÃâÇÏ°Ô µÈ´Ù.
¶È°°Àº µ¿ÀÛÀ» Ç쵂 ÀμöÀÇ ÇüÀÌ ´Ù¸¥ ÇÔ¼ö¸¦ ÀÌ·¸°Ô °°Àº À̸§À¸·Î ¸¸µé¾î
µÎ¸é ÀμöÀÇ Çü¿¡ ½Å°æ¾²Áö ¾Ê°í ÇÔ¼ö¸¦ È£ÃâÇÒ ¼ö À־ ÁÁ´Ù. ¸¸¾à À§¿Í ¶È
°°Àº ¿¹Á¦¸¦ C ¹®¹ýÀ» ÀÌ¿ëÇؼ­ §´Ù¸é ´ÙÀ½°ú °°ÀÌ µÈ´Ù.

#include <stdio.h>
int addint( int, int);           // Àμö°¡ ´Ù¸¥ µÎ ÇÔ¼öÀÇ À̸§ÀÌ
double adddbl( double, double);    // ¼­·Î ´Ù¸£´Ù.

void main()
{
 int a,b;
 double c,d;
 a = 3;
 b = 4;
 c = 3.14;
 d = 2.25;
 printf( "add  integer is  %d\n",addint( a, b)); // Á¤¼öÀÇ add È£Ãâ
 printf( "add real is %f\n", adddbl( c, d));  // ½Ç¼öÀÇ add È£Ãâ
}

int addint( int a, int b)     // Á¤¼ö¸¦ Àμö·Î ÃëÇÏ´Â add ÇÔ¼ö
{
 return a + b;
}
double adddbl( double c, double d)  // ½Ç¼ö¸¦ Àμö·Î ÃëÇÏ´Â add ÇÔ¼ö
{
 return c + d;
}

¶È°°Àº ±â´ÉÀÇ ÇÔ¼öÀÌÁö¸¸ ÃëÇÏ´Â Àμö°¡ ´Ù¸£±â ¶§¹®¿¡ addint, adddbl µî°ú
°°Àº º°µµÀÇ ÇÔ¼ö À̸§À» ÁÖ¾î¾ß ÇÑ´Ù. ¶È°°Àº µ¿ÀÛÀ» Ç쵂 Àμö¸¸ ´Ù¸¥ ÇÔ¼ö
¸¦ ÀÌ·± ½ÄÀ¸·Î ±¸º°Çؼ­ Á¤ÀÇÇØ¾ß ÇÑ´Ù´Â °ÍÀº ¹º°¡ ºÒÇÕ¸®ÇÏ´Ù. ¹°·Ð ÀÌ °æ
¿ì´Â ¸ÅÅ©·Î ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é °£´ÜÇÏ°Ô ÇØ°áµÇÁö¸¸ ¸ÅÅ©·Î ÇÔ¼ö´Â °£´ÜÇÑ ¿¬»ê
¸¸À» ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀϹÝÀûÀÎ ÇØ°áÃ¥ÀÌ µÇÁö ¸øÇÑ´Ù. °°Àº À̸§À» »ç¿ëÇÏ´Â
µÎ °³(¶Ç´Â ±× ÀÌ»ó)ÀÇ ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº Á¶°Ç Áß ÃÖ¼ÒÇÑ ÇÑ °³ ÀÌ»óÀ» ¸¸Á·
ÇØ¾ß ÇÑ´Ù. ¾Æ¹« ÇÔ¼ö³ª À̸§À» °°ÀÌ °øÀ¯ÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù.

* Àü´ÞµÇ´Â ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÌ ´Þ¶ó¾ß ÇÑ´Ù. ÄÄÆÄÀÏ·¯´Â ÇÔ¼öÀÇ À̸§»Ó¸¸
¾Æ´Ï¶ó ÇÔ¼ö È£Ãâ½Ã¿¡ Àü´ÞµÇ´Â ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» º¸°í È£ÃâÇÒ ÇÔ¼ö¸¦ Á¤
È®ÇÏ°Ô Ã£¾Æ³½´Ù.

int add( int, int);
double add( double, double);
char *add( char *, char *);
long add( int double);

µîÀÇ ÇÔ¼ö´Â °°Àº À̸§À» »ç¿ëÇÏÁö¸¸ ¸ðµÎ ´Ù¸¥ ÇÔ¼ö·Î Ãë±ÞµÈ´Ù.

* ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÌ ¼³»ç °°´õ¶óµµ ÀμöÀÇ ¼ö°¡ ´Ù¸£¸é ¼­·Î ´Ù¸¥ ÇÔ¼ö·Î
Ãë±ÞµÈ´Ù.

int func( int);
int func( int, int);
int func( int, int, int);

µîÀº °°Àº À̸§ÀÇ ÇÔ¼ö¸íÀ» »ç¿ëÇÏ°í ¸ðµÎ Á¤¼öÇüÀÇ Àμö¸¦ ÃëÇÏÁö¸¸ È£Ãâ½Ã¿¡
ÀμöÀÇ °³¼ö°¡ ¸íÈ®È÷ ´Ù¸£¹Ç·Î ±¸ºÐÀÌ °¡´ÉÇÏ´Ù.

* Åë¿ë ¹üÀ§°¡ ´Ù¸¥ ÇÔ¼ö´Â À̸§ÀÌ °°¾Æµµ »ó°ü¾ø´Ù. ¸¶Ä¡ µÎ °³ÀÇ ´Ù¸¥ ÇÔ¼ö
³»¿¡¼­ °°Àº À̸§ÀÇ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â °Í°úµµ °°´Ù. ±×·±µ¥ º¯¼ö´Â Áö¿ª
º¯¼ö·Î ¼±¾ðµÉ ¼öÀֱ⠶§¹®¿¡ ÀÌ·± °ÍÀÌ °¡´ÉÇÏÁö¸¸ CÀÇ ÇÔ¼ö´Â Áö¿ª ÇÔ¼ö¶ó´Â
°ÍÀÌ ¾øÀ¸¸ç(»ç½ÇÀº ¾ÆÁÖ µå¹°Áö¸¸ static ÇÔ¼ö¶ó´Â °ÍÀÌ ÀÖ´Ù) ÀÏ´Ü ¼±¾ðµÇ¸é
¿ÜºÎ ¸ðµâ¿¡ ¸ðµÎ ¾Ë·ÁÁö¹Ç·Î Åë¿ë ¹üÀ§°¡ ´Ù¸¥ ÇÔ¼ö°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ±×·¯
³ª C++¿¡¼­´Â classÀÇ ¸â¹ö ÇÔ¼ö°¡ ¿ÜºÎ·Î ¾Ë·ÁÁöÁö ¾Ê´Â Ư¼ºÀÌ ÀÖÀ¸¹Ç·Î µÎ
°³ÀÇ ´Ù¸¥ class¿¡¼­ Á¤ÀÇµÈ ¸â¹ö ÇÔ¼ö°¡ Åë¿ë¹üÀ§°¡ ´Ù¸¥ °ü°è·Î À̸§ÀÌ Áߺ¹
µÉ ¼ö ÀÖ´Ù. ´ÙÀ½¿¡ class¸¦ °øºÎÇÒ ¶§ ÀÚ¼¼È÷ ¾Ë¾Æº¸¾Æ¶ó.

»ç¶÷ÀÌ ´«À¸·Î ±¸º°ÇÒ ¼ö ÀÖ´Â °ÍÀº ÄÄÇ»ÅÍ(=Compiler)µµ ±¸ºÐÇÒ ¼ö ÀÖ´Ù. ¿©
±â±îÁöÀÇ ¼³¸íÀº Å©°Ô »ó½ÄÀÇ ¹üÀ§¸¦ ¹þ¾î³ªÁö ¾ÊÀ¸¹Ç·Î ºñ±³Àû ½±°Ô ÀÌÇØÇßÀ¸
¸®¶ó »ý°¢ÇÑ´Ù. ±×·±µ¥ Ȥ½Ã "¸®ÅÏ°ªÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÌ ´Ù¸¥ ÇÔ¼ö"¿¡ ´ëÇؼ­µµ
¶È°°ÀÌ À̸§ÀÌ Áߺ¹µÉ ¼ö ÀÖÁö ¾ÊÀ»±î ¶ó°í »ý°¢ÇÒ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù. Áï ´ÙÀ½
°ú °°Àº ÇÔ¼öµéÀº ¼­·Î ±¸ºÐÀÌ °¡´ÉÇϹǷμ­·Î ´Ù¸¥ ÇÔ¼ö·Î Ãë±ÞµÉ ¼ö ÀÖÀ» °Í
ÀÌ´Ù.

int func( int, char *);
char *func( int, char *);
void func( int, char *);

±×·¯³ª ¹Ì¾ÈÇÏ°Ôµµ ÀÌ ¼¼ °³ÀÇ ÇÔ¼ö´Â °°Àº À̸§À» °¡Áú ¼ö ¾ø´Ù. ÄÄÆÄÀÏ·¯´Â
¸®ÅÏ°ªÀÇ µ¥ÀÌÅÍ Å¸ÀÔ¿¡ ÀÇÇØ ÇÔ¼ö¸¦ ±¸ºÐÇÏÁö ¾ÊÀ¸¸ç ±¸ºÐÇϱⰡ ºÒ°¡´ÉÇÏ´Ù.
¿Ö³ÄÇÏ¸é ¸®ÅÏ°ª¿¡ °üÇÑ Ã³¸®´Â ÇÔ¼ö È£Ãâ °úÁ¤¿¡¼­ ÀÌ·ç¾îÁö´Â °ÍÀÌ ¾Æ´Ï¶ó
ÇÔ¼ö°¡ È£ÃâÀ» ¸¶Ä¡°í µ¹¾Æ¿ÔÀ» ¶§ ÀÌ·ç¾îÁö±â ¶§¹®¿¡ È£ÃâµÇ´Â ½ÃÁ¡¿¡¼­´Â ÇÔ
¼öÀÇ ¸®ÅÏ°ªÀ» ¾Ë ¼ö ¾ø±â ¶§¹®ÀÌ´Ù.

int i = func( 3, "boy");
outtextxy( 100, 100, func( 10, "girl"));

ÀÌ·± °æ¿ì¶ó¸é Ȥ½Ã ±¸ºÐÀÌ °¡´ÉÇÒÁöµµ ¸ð¸£Áö¸¸ ÇÔ¼ö°¡ ´Üµ¶À¸·Î ¾²ÀÌ´Â ´ÙÀ½
°ú °°Àº °æ¿ì¿¡´Â ¸®ÅÏ°ªÀÌ ¾î¶² ŸÀÔÀ» °¡Áö´ÂÁö ¾Ö¸ÅÇØÁö°Ô µÇ°í ¾î¶² ÇÔ¼ö
°¡ »ç¿ëµÇ¾î¾ß ÇÒÁö ÄÄÆÄÀÏ·¯°¡ °áÁ¤ÇÏÁö ¸øÇÏ°Ô µÈ´Ù.

cout << func( 5, "bed scene");
func( 8, "kiss scene");

¿ä¾àÇÏÀÚ¸é °°Àº À̸§ÀÇ ÇÔ¼ö°¡ ¿©·¯ °³ Á¸ÀçÇϱâ À§Çؼ­´Â ÀμöÀÇ ¼ö°¡ ´Ù¸£
°Å³ª µ¥ÀÌÅÍ Å¸ÀÔÀÌ ´Þ¶ó¾ß ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÇÔ¼öÀÇ ´ÙÇü¼ºÀÌ ¾î¶² Æí¸®ÇÔÀ»
ÁÖ´Â Áö¸¦ º¸¿©ÁØ´Ù.

#include <iostream.h>
#include <dos.h>

void outtime( time atime)    // ½Ã°£À» Ãâ·ÂÇØÁÖ´Â ÇÔ¼ö 1
{
 cout << "Now time is ";
 cout << ( int)atime.ti_hour << ':'
     << ( int)atime.ti_min << ':'
     << ( int)atime.ti_sec << endl;
}

void outtime( int h, int m, int s) // ½Ã°£À» Ãâ·ÂÇØÁÖ´Â ÇÔ¼ö 2
{
 cout << "Now time is ";
 cout << h << ':' << m << ':' << s << endl;
}

void main()
{
 time nowtime;
 gettime( &nowtime);
 outtime( nowtime);
 outtime( nowtime.ti_hour, nowtime.ti_min, nowtime.ti_sec);
}

¶È°°ÀÌ ½Ã°£À» ³ªÅ¸³»´Â ÇÔ¼ö°¡ µÎ °³ Àִµ¥ ÃëÇÏ´Â Àμö°¡ ¼­·Î ´Ù¸£´Ù. ÇÏ
³ª´Â ½Ã°£À» ´ã°í ÀÖ´Â ±¸Á¶Ã¼ Çϳª¸¦ ¿øÇÏ°í ¶Ç ´Ù¸¥ ÇÔ¼ö´Â ½Ã, ºÐ, ÃÊÀÇ ½Ã
°£À» ÀÌ·ç´Â °³º°Àû ¿ä¼Ò¸¦ ¿øÇÑ´Ù.
ÀÌ ¿Ü¿¡µµ C¿¡¼­ ½Ã°£À» ³ªÅ¸³»´Â ÇüÅ°¡ ¿©·¯ °¡Áö°¡ Àִµ¥ outtime ÇÔ¼ö¸¦
±× °¢°¢ÀÇ ÀÚ·áÇü¿¡ ´ëÇØ Á¤ÀÇÇØ µÎ¸é ¾î¶°ÇÑ ÇüÅ·ΠÀúÀåµÇ¾î ÀÖµçÁö ½Ã°£À»
Ãâ·ÂÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
À§ ¿¹Á¦ÀÇ Ãâ·Â °á°ú´Â ´ÙÀ½°ú °°´Ù.

Now time is 11:36:55
Now time is 11:36:55

´ÙÇü¼ºÀº C++ ¹®¹ýÀÇ Æ¯¼ºÀ» °áÁ¤ÇÏ´Â Áß¿äÇÑ ¼Ó¼ºÀ̹ǷΠÀß ÀÌÇØÇØ µÎµµ·Ï
ÇÏÀÚ.


À̾ °è¼ÓµË´Ï´Ù. ==============>>>>>>>


--------------------------------------------------------------------------------