[C++]2ºÎ°­ÁÂ(53)<--Ŭ·¡½º ÅÛÇø´





#include <iostream.h>
#include <conio.h>
template <class T>
T max(T a,T b)
{
return a>b ? a:b;
}
void main()
{
clrscr();
cout << max(3,4) << endl;
cout << max(123l,456l) <<endl;
cout << max(3.14, 2.17) << endl;
}

¼¼ °³ÀÇ max ÇÔ¼ö¿¡¼­ ¹Ýº¹µÇ´Â ºÎºÐÀº ±×´ë·Î µÎ°í ¼­·Î ´Ù¸¥ ºÎºÐÀ» T·Î ´ë
üÇÏ¿´°í T´Â ÅÛÇø´ÀÇ Àμö·Î ÁÖ¾îÁöµµ·Ï µÇ¾î ÀÖ´Ù. Áï T°¡ int·Î ÁÖ¾îÁö¸é
max´Â int max(int,int) {...}°¡ µÇ°í T°¡ longÀ¸·Î ÁÖ¾îÁö¸é max´Â long max(
long,long) {...}°¡ µÈ´Ù. ÀÌ·¸°Ô ÅÛÇø´¿¡ ÀÇÇØ »ý¼ºµÇ´Â ÇÔ¼ö¸¦ ÅÛÇø´ ÇÔ¼ö
¶ó°í ÇÑ´Ù. À§ ¿¹Á¦¿¡¼­ max ÇÔ¼ö°¡ ÅÛÇø´ ÇÔ¼öÀÌ´Ù. ÅÛÇø´ ÇÔ¼ö´Â ÀÏÁ¾ÀÇ
¼±¾ðÀ̱⠶§¹®¿¡ È£ÃâµÇ±â Àü¿¡´Â ½ÇÁ¦·Î »ý¼ºµÇÁö ¾Ê´Â´Ù.
ÄÄÆÄÀÏ·¯´Â ÅÛÇø´ ÇÔ¼öÀÇ ÇüŸ¦ ±â¾ïÇÏ°í ÀÖ´Ù°¡ ÅÛÇø´ ÇÔ¼ö°¡ È£ÃâµÇ¸é
Àû´çÇÑ ÇüÅÂÀÇ ÇÔ¼ö¸¦ ¸¸µé°í È£ÃâÇÏ°Ô µÈ´Ù. max(3,4)°¡ È£ÃâµÉ ¶§ ÄÄÆÄÀÏ·¯
´Â 3,4°¡ intÇüÀÇ »ó¼öÀÓÀ» º¸°í ÅÛÇø´ Àμö T¿¡ int¸¦ ³Ö¾î int max(int,int
) {...}¸¦ »ý¼ºÇÑ ÈÄ È£ÃâÇÏ°Ô µÈ´Ù. ¸¶Âù°¡Áö·Î max(123l,456l)À» È£ÃâÇÒ ¶§
´Â longÇüÀÇ max°¡ »ý¼ºµÇ°í max(3.14, 2.17)À» È£ÃâÇÒ ¶§´Â doubleÇüÀÇ max°¡
»ý¼ºµÈ´Ù. À§ ¿¹Á¦¿¡¼­´Â max ÇÔ¼ö°¡ ¸ðµÎ ¼¼ °³°¡ ¸¸µé¾îÁø´Ù.
ÅÛÇø´ ÇÔ¼öÀÇ Àμö ¸®½ºÆ® ÀÚ¸®¿¡´Â µ¥ÀÌÅÍ Å¸ÀÔ»Ó¸¸ ¾Æ´Ï¶ó ÇÔ¼ö, ¼ö½Ä µî
µµ ¿Ã ¼ö°¡ ÀÖ´Ù´Â Á¡ÀÌ MACRO ÇÔ¼ö¿Í´Â ºñ±³°¡ µÇ´Â »çÇ×ÀÌ´Ù. À§ÀÇ ¿¹Á¦¿¡¼­
´Â Àμö ¸®½ºÆ®¿¡ ¹Ýµå½Ã µ¥ÀÌÅÍ Å¸ÀÔÀÌ ¿Í¾ß ÇϹǷΠÀμö ¸®½ºÆ®³»¿¡ class
Å°¿öµå°¡ ¾²¿´´Ù. Àμö·Î ÁÖ¾îÁø T´Â µ¥ÀÌÅÍ Å¸ÀÔÁßÀÇ ÇϳªÀÎ, int, char, dou
ble, long ¶Ç´Â »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ Å¬·¡½º À̸§ÁßÀÇ Çϳª¶ó´Â °ÍÀ» ¸í½ÃÇÑ´Ù.
ÅÛÇø´ ÇÔ¼ö¿Í ÀÏ¹Ý ÇÔ¼ö°¡ Áߺ¹µÉ °æ¿ì´Â ÀÏ¹Ý ÇÔ¼ö°¡ ¿ì¼±ÀûÀ¸·Î ¼±ÅõǸç
È£Ãâ ±¸¹®À» ¸¸Á·½Ãų ¼ö ÀÖ´Â ÀÏ¹Ý ÇÔ¼ö°¡ ÀÖ´Â ÇÑ ÅÛÇø´ ÇÔ¼ö´Â »ý¼ºµÇÁö
¾Ê´Â´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

#include <iostream.h>
#include <conio.h>
char *max(int a,int b)
{
return "I'm user defined function \n";
}
template <class T>
T max(T a,T b)
{
return a>b ? a:b;
}
double max(double,double);
void main()
{
clrscr();
cout << max(3.14, 2.17) << endl;
cout << max(5,3) << endl;
}

ÅÛÇø´ ÇÔ¼ö¿Í ÀÏ¹Ý ÇÔ¼ö°¡ µ¿½Ã¿¡ Á¸ÀçÇÑ´Ù. ¸ÕÀú max(3.14, 2.17)ÀÌ È£ÃâµÉ
¶§ doubleÇüÀ» Àμö·Î °®´Â ÀÏ¹Ý ÇÔ¼ö max°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ¸¹Ç·Î ÅÛÇø´¿¡
¼­ double max(double, double)À» »ý¼ºÇÏ¿© È£ÃâÇÑ´Ù. max(5,3)ÀÌ È£ÃâµÉ ¶§
Á¤¼öÇüÀ» Àμö·Î ÃëÇÏ´Â ÀÏ¹Ý ÇÔ¼ö char * max(int,int)°¡ ÀÖÀ¸¹Ç·Î ÅÛÇø´¿¡
¼­ ÇÔ¼ö¸¦ »ý¼ºÇÏÁö ¾Ê°í ÀÏ¹Ý ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
°á°ú°¡ ¾î¶»°Ô ´Þ¶óÁö´Â°¡¸¦ º¸¿© ÁÖ±â À§ÇØ ÀϺη¯ ¹®ÀÚ¿­À» Ãâ·ÂÇϵµ·Ï Çß
´Ù. ¸¸¾à ÀÏ¹Ý ÇÔ¼ö°¡ ¾ø°í ÅÛÇø´ ÇÔ¼ö·Îµµ »ý¼ºµÉ ¼ö ¾ø´Â ÇüÅÂÀÇ ÇÔ¼ö¸¦ È£
ÃâÇÏ¸é ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. max(3, 3.14)°°Àº ±¸¹®ÀÌ ±× ¿¹°¡ µÇ¸ç max(int
,double)°°ÀÌ µÎ ÀμöÀÇ Å¸ÀÔÀÌ ´Ù¸¥ °æ¿ì´Â ÅÛÇø´¿¡¼­ »ý¼ºÇÒ ¼ö°¡ ¾ø´Ù. ÀÌ
·± °æ¿ì´Â ´ÙÀ½°ú °°ÀÌ max(3, 3.14)¾Õ¿¡ max(double, double) ÇüÀÇ ¿øÇüÀ» ¹à
ÇôÁØ´Ù.

#include <iostream.h>
#include <conio.h>
template <class T>
T max(T a,T b)
{
return a>b ? a:b;
}
double max(double,double);
void main()
{
clrscr();
cout << max(3,4) << endl;
cout << max(123l,456l) <<endl;
cout << max(3.14, 2.17) << endl;
cout << max(3,3.14) << endl;
}

ÀÌ ¼±¾ð¿¡ ÀÇÇØ ÄÄÆÄÀÏ·¯´Â double max(double,double)¸¦ »ý¼ºÇÏ°Ô µÇ°í max(
3, 3.14)´Â ÀÚµ¿ Çü º¯È¯¿¡ ÀÇÇØ max((double)3, 3.14)·Î È£ÃâµÈ´Ù.


³ª. Ŭ·¡½º ÅÛÇø´

ÇÔ¼ö ÅÛÇø´À» ¸¸µå´Â °Í°ú µ¿ÀÏÇÑ ¿ø¸®·Î Ŭ·¡½º ÅÛÇø´À» ¸¸µé ¼ö ÀÖ´Ù. ÇÔ
¼ö°¡ µ¥ÀÌÅÍÇü¸¸ ´Ù¸£°í ³ª¸ÓÁö°¡ ºñ½ÁÇÑ ÇüÅ·ΠÁߺ¹µÇµíÀÌ Å¬·¡½ºµµ ÀϺθ¸
´Ù¸£°í ´ëºÎºÐÀÌ ºñ½ÁÇÑ ÇüÅ·ΠÁߺ¹µÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

#include <iostream.h>
#include <conio.h>
class intdata {
protected:
 int x,y;
 int data;
public:
 intdata(int ax,int ay,int adata)
 {
   x=ax;
   y=ay;
   data=adata;
 }
 void outdata(void)
 {
   gotoxy(x,y);
   cout << data;
 }
};
class chardata {
protected:
 int x,y;
 char data;
public:
 chardata(int ax,int ay,char adata)
 {
   x=ax;
   y=ay;
   data=adata;
 }
 void outdata(void)
 {
   gotoxy(x,y);
   cout << data;
 }
};
class realdata {
protected:
 int x,y;
 float data;
public:
 realdata(int ax,int ay,float adata)
 {
   x=ax;
   y=ay;
   data=adata;
 }
 void outdata(void)
 {
   gotoxy(x,y);
   cout << data;
 }
};
void main()
{
clrscr();
intdata int1(10,10,12);
chardata char1(15,15,'S');
realdata real1(30,10,3.14159265);
int1.outdata();
char1.outdata();
real1.outdata();
}

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


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

    

 ´ÙÀ½