[C++]2ºÎ°­ÁÂ(52)<--ÅÛÇø´





#include <iostream.h>
class Time {
protected:
 int hour,min,sec;
public:
 Time() {}
 void settime(int h,int m,int s) {
   hour=h;
   min=m;
   sec=s;
 }
 void outtime();
};
void Time::outtime(void)
{
cout << "time is " << hour << " hour " << min
    << " minute " << sec << " second." << endl;
}
void main()
{
int i;
Time *t1;
t1=new Time[3];       // °´Ã¼ ¹è¿­ÀÇ »ý¼º
t1->settime(1,1,1);   
t1++;
t1->settime(2,2,2);
t1++;
t1->settime(3,3,3);
t1-=2;
for (i=0;i<3;i++)
(t1+i)->outtime();
delete [3] t1;        // °´Ã¼ ¹è¿­ÀÇ ¼Ò°Å
}

½ÇÇà °á°ú´Â ¾Æ·¡¿Í °°´Ù.

time is 1 hour 1 minute 1 second.
time is 2 hour 2 minute 2 second.
time is 3 hour 3 minute 3 second.

new ¿¬»êÀÚ¿¡ ÀÇÇØ °´Ã¼ÀÇ ¹è¿­À» »ý¼ºÇÒ ¶§´Â Àμö°¡ ÀÖ´Â »ý¼ºÀڴ ȣÃâÇÏ
Áö ¸øÇϸç Àμö°¡ ¾ø´Â »ý¼ºÀÚ ÇÔ¼ö¸¸ È£ÃâÇÒ ¼ö ÀÖ´Ù. °´Ã¼ÀÇ ¹è¿­À» »ý¼ºÇÒ
¶§´Â »ý¼º°ú µ¿½Ã¿¡ ÃʱâÈ­¸¦ ÇÏÁö ¸øÇϹǷΠ°´Ã¼ ¹è¿­ »ý¼º ÈÄ °´Ã¼¸¦ ÃʱâÈ­
½ÃÄÑ ÁÖ´Â º°µµÀÇ ¸â¹ö ÇÔ¼ö°¡ ÀÖ¾î¾ß ÇÑ´Ù. À§ÀÇ ¿¹Á¦¿¡¼­´Â settimeÀ̶ó´Â
º°µµÀÇ ¸â¹ö ÇÔ¼ö¸¦ µÎ¾î °´Ã¼ ¹è¿­ »ý¼º ÈÄ ÀÏÀÏÀÌ ÃʱâÈ­¸¦ ÇØÁÖ°í ÀÖ´Ù.
°´Ã¼ ¹è¿­À» Áö¿ï ¶§´Â delete ¿¬»êÀÚ¿¡°Ô Áö¿ï ¹è¿­ÀÇ Å©±â¸¦ Àü´ÞÇØÁÖ¾î¾ß
ÇϹǷΠ°´Ã¼ ¹è¿­À» ¼Ò°ÅÇÏ´Â delete ¿¬»êÀÚ´Â ´ÙÀ½°ú °°Àº ÇüÅ°¡ µÈ´Ù.

delete [°´Ã¼ÀÇ °³¼ö] Æ÷ÀÎÅÍ º¯¼ö

delete ¿¬»êÀÚÀÇ ÇÇ¿¬»êÀÚ·Î ÁÖ¾îÁö´Â Æ÷ÀÎÅÍ °ª¸¸À¸·Î´Â delete ¿¬»êÀÚ°¡ ¸î
°³ÀÇ °´Ã¼ºÐ¸¸Å­ ¸Þ¸ð¸®¸¦ ÇÒ´çÇØÁ¦ ÇؾßÇÒÁö ÆÇ´ÜÇÒ ¼ö°¡ ¾ø´Ù. new ¿¬»êÀÚ°¡
°´Ã¼ »ý¼º½Ã »ý¼ºÀÚ¸¦ È£ÃâÇÏ´Â °Í°ú ¸¶Âù°¡Áö·Î delete ¿¬»êÀÚ´Â °´Ã¼¸¦ ¼Ò°Å
ÇÒ ¶§ °´Ã¼ Æı«ÀÚ¸¦ ÀÚµ¿À¸·Î È£ÃâÀ» ÇÑ´Ù. ¸¸¾à °´Ã¼ ³»ºÎ¿¡¼­ µ¿ÀûÀ¸·Î ¸Þ
¸ð¸®¸¦ ÇÒ´çÇؼ­ »ç¿ëÇÏ°í ÀÖ°í °´Ã¼ Æı«ÀÚ¿¡¼­´Â °´Ã¼¿¡¼­ »ç¿ëÇÑ ¸Þ¸ð¸®¸¦
ÇÒ´ç ÇØÁ¦ÇÏ´Â ¿ªÇÒÀ» ÇÏ°í ÀÖ´Ù¸é delete ¿¬»êÀÚ¿¡°Ô °´Ã¼ÀÇ °³¼ö¸¦ °¡¸£ÃÄ
ÁÖ¾î Æı«ÀÚ¸¦ ¸î ¹ø È£ÃâÇØ¾ß ÇÒ °ÍÀΰ¡¸¦ ¸íÈ®ÇÏ°Ô °¡¸£ÃÄ ÁÖ¾î¾ß ÇÑ´Ù. ±×
·¸Áö ¾ÊÀ» °æ¿ì´Â, ¹°·Ð Æı«ÀÚÀÇ µ¿ÀÛ¿¡ µû¶ó ´Ù¸£Áö¸¸ ½Ã½ºÅÛÀÌ ¾î¶»°Ô µÉÁö
ÀüÇô ¿¹ÃøÀ» ÇÒ ¼ö°¡ ¾ø¾îÁø´Ù.


********************************************************
********************************************************
5-6 ÅÛÇø´


¿©±â¼­ ¾Ë¾Æº¼ ÅÛÇø´Àº Á» ´õ Æí¸®ÇÏ°Ô C++ ÇÁ·Î±×·¡¹ÖÀ» Çϵµ·Ï µµ¿ÍÁÖ´Â
±â´ÉÀ» °¡Áø °ÍÀÌ´Ù. ¾îµð±îÁö³ª Á» ´õ ÆíÇϱâ À§ÇØ ¸¸µé¾îÁø °ÍÀ̹ǷΠ²À ¸ô
¶óµµ C++À» »ç¿ëÇÏ´Â µ¥´Â Å« ÁöÀåÀÌ ¾ø´Ù.
Borland C++ ÄÄÆÄÀÏ·¯µµ 3.0¿¡ À̸£·¯¼­¾ß ÅÛÇø´ ±â´ÉÀ» Á¦°øÇϱ⠽ÃÀÛÇßÀ¸
¸ç ¾ÆÁ÷±îÁöµµ ÅÛÇø´À» Áö¿øÇÏÁö ¾Ê´Â C++ ÄÄÆÄÀÏ·¯µµ ÀÖ´Ù. ½ÇÁ¦ ÇÁ·Î±×·¡¹Ö
¿¡¼­´Â Àß »ç¿ëµÇÁö ¾ÊÀ¸¹Ç·Î °¡º­¿î ¸¶À½À¸·Î Àо°í Áö³ª°¡±â ¹Ù¶õ´Ù.


°¡. ÇÔ¼ö ÅÛÇø´

C++Àº ´ÙÇü¼º(polymorphism)À» Áö¿øÇÏ¿© ÇÔ¼ö À̸§ÀÌ °°´õ¶óµµ ÀμöÀÇ µ¥ÀÌÅÍ
ŸÀÔÀ̳ª °³¼ö°¡ ´Ù¸£¸é °°Àº À̸§ÀÇ ÇÔ¼ö¸¦ ¿©·¯ °³ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ±×·¡¼­
´ÙÀ½ ¿¹Á¦¿Í °°ÀÌ Á¤¼öÇü, longÇü, ½Ç¼öÇüÀÇ Å« °ªÀ» ãÀº ÇÔ¼ö¸¦ max¶ó´Â ÇÏ
³ªÀÇ À̸§À¸·Î Á¤ÀÇÇÒ ¼ö ÀÖ´Ù.

#include <iostream.h>
#include <conio.h>
int max(int a,int b)
{
return a>b ? a:b;
}
long max(long a,long b)
{
return a>b ? a:b;
}
double max(double a,double 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 ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§µµ ÄÄÆÄÀÏ·¯°¡ ÀμöÀÇ µ¥ÀÌ
ÅÍ Å¸ÀÔÀ» º¸°í Á¤È®ÇÑ ÇÔ¼ö¸¦ È£ÃâÇØÁÖ°Ô µÈ´Ù. ±×·±µ¥ °¡¸¸È÷ º¸¸é ¼Ò½º ÆÄ
ÀÏ ÀÚü°¡ ¹º°¡ Áߺ¹µÇ´Â ´À³¦ÀÌ ¸¹ÀÌ µå´Âµ¥ ¼¼ °³ÀÇ max ÇÔ¼ö¸¦ ºñ±³Çغ¸¸é
¸®ÅÏ°ª°ú ÀμöÀÇ µ¥ÀÌÅÍÇü¸¸ ´Ù¸£°í ³ª¸ÓÁö´Â ¶È°°´Ù. À§ ¿¹Á¦ÀÇ max ÇÔ¼ö´Â
¼¼ °³¹Û¿¡ ¾ø´Âµ¥´Ù ÇÔ¼ö ÀÚü°¡ ¿ö³« ª¾Æ¼­ Å« ¹®Á¦°¡ µÇÁö ¾ÊÁö¸¸ ¸¸¾à max
ÇÔ¼ö°¡ µ¥ÀÌÅÍ Å¸ÀÔ¿¡ µû¶ó 10°³ Á¤µµ°¡ ÀÖ°í ÇÑ ÇÔ¼ö´ç 10ÇàÀÇ ±æÀ̸¦ °¡Áø´Ù
¸é ¹®Á¦´Â ´Þ¶óÁø´Ù. °ÅÀÇ ºñ½ÁÇÑ ºÎºÐÀÌ ¹Ýº¹µÇ¾î ´çÀå º¸±âµµ ½ÈÀ» »Ó´õ·¯
ÇÁ·Î±×·¡¸Ó°¡ ´Ü¼ø ÀÛ¾÷À» ÇØ¾ß Çϸç, ´õ±¸³ª ÇÑ ºÎºÐÀÌ º¯°æµÉ ¶§ ¸ðµç max
ÇÔ¼ö°¡ ´Ù °°ÀÌ º¯°æµÇ¾î¾ß ÇϹǷΠ´õ¿í ´õ ÇÁ·Î±×·¡¸Ó¸¦ °í´ÞÇÁ°Ô ÇÑ´Ù. ±×·¡
¼­ ¹Ýº¹Àû ÀÛ¾÷À» ÇÇÇϱâ À§ÇØ Á» ´õ ÆíÇÑ ¹æ¹ýÀ» ¸ð»öÇÏ°Ô µÇ¾ú°í ±× ÇØ°áÃ¥
À¸·Î Á¦½ÃµÈ °ÍÀÌ ÅÛÇø´ÀÌ´Ù. ÅÛÇø´À̶õ ÇÔ¼ö°¡ ¾î¶»°Ô ¸¸µé¾îÁúÁö¸¦ Àμö¸¦
»ç¿ëÇÏ¿© ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù. Áï ¼¼ °³ÀÇ max ÇÔ¼ö¿¡¼­ ¼­·Î ´Ù¸¥ ºÎºÐÀÎ ¸®ÅÏ°ª
°ú ÀμöÇüÀ» ÅÛÇø´ÀÇ Àμö·Î ´ëüÇÑ´Ù. ÅÛÇø´À» »ç¿ëÇÏ´Â ÀϹÝÀûÀÎ ¹®¹ýÀº
¾Æ·¡¿Í °°À¸¸ç template Å°¿öµå¸¦ »ç¿ëÇÑ´Ù.

template <Àμö ¸®½ºÆ®>
ÇÔ¼öÀÇ Á¤ÀÇ

ÇÔ¼öÀÇ Á¤ÀÇ ºÎºÐÀº ÅÛÇø´¿¡¼­ ³Ñ±ä Àμö°¡ »ç¿ëµÈ´Ù´Â °Í¸¸ Á¦¿ÜÇÏ°í´Â ÀÏ
¹ÝÀûÀÎ ÇÔ¼öÀÇ Á¤ÀÇ¿Í µ¿ÀÏÇÏ´Ù. ¿©±â±îÁö ÀÐ°íµµ ¾ó¸¥ ÀÌÇØ°¡ °¡Áö ¾Ê´Â »ç¶÷
Àº(¾Æ¸¶ ´ëºÎºÐ ?) ¿¹Á¦¸¦ ÅëÇØ ±¸Ã¼ÀûÀÎ »óȲÀ» º¸°í °¨À» Àâ±â ¹Ù¶õ´Ù. ´ÙÀ½
¿¹Á¦´Â ¾ÕÀÇ ¿¹Á¦¿Í µ¿ÀÏÇÑ µ¿ÀÛ°ú Ãâ·ÂÀ» Ç쵂 ÇÔ¼öÀÇ Á¤ÀǸ¦ ÅÛÇø´À¸·Î ´ë
üÇÏ¿´´Ù.

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


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

    

 ´ÙÀ½