[C++]2ºÎ°­ÁÂ(51)<--µ¿Àû °´Ã¼ »ý¼º





Ŭ·¡½º³¢¸®ÀÇ Å¸ÀÔ º¯È¯¿¡µµ ¿ª½Ã ¸¶Âù°¡Áö·Î ij½ºÆ® ¿¬»êÀÚ¸¦ ¿À¹ö·ÎµùÇÏ´Â
¹æ½ÄÀ» »ç¿ëÇÑ´Ù. TimeÇü °´Ã¼ now¿Í Tsec °´Ã¼ nowts°¡ ÀÖÀ» ¶§ now=(Time)
nowts; ¶Ç´Â nowts=(Tsec)now; µî¿¡ »ç¿ëµÇ´Â (Time),(Tsec)µîµµ ij½ºÆ® ¿¬
»êÀÚÀÌ¸ç ¿¬»êÀÚ¶ó°í Ç¥ÇöÇϱ⠺¸´Ù´Â ¿¬»êÀÚ ÇÔ¼ö¶ó°í Ç¥ÇöÇÏ´Â °ÍÀÌ ´õ ¿Ç´Ù.
ÀÌ ¿¬»êÀÚµéÀÇ ±â´É¸¸ Á¤ÀÇÇØÁشٸé Ŭ·¡½º³¢¸®ÀÇ µ¥ÀÌÅÍ Å¸ÀÔ º¯È¯ÀÌ ÀÚÀ¯·Î
¿ÍÁö°Ô µÈ´Ù.
Time Ŭ·¡½º¿¡¼­´Â operator Tsec() º¯È¯ ÇÔ¼ö¸¦ Á¤ÀÇÇÏ¿© TimeÇüÀÇ °´Ã¼¸¦ T
secÇüÀ¸·Î ¹Ù²Ù´Â ±â´ÉÀ» Á¤ÀÇÇÏ°í ÀÖ´Ù. ÇÔ¼ö ³»ºÎÀÇ ±¸Á¶´Â °è»ê½ÄÀÌ º¹ÀâÇØ
º¸¿©µµ ºñ±³Àû °£´ÜÇÏ´Ù. ¿ì¼± TimeÇüÀ» TsecÇüÀ¸·Î ¹Ù²Ù±â À§ÇØ TsecÇüÀÇ ÀÓ
½Ã º¯¼ö temptsecÀ» ¸¸µç ÈÄ ½Ã,ºÐ,Ãʸ¦ °¢°¢ °è»êÇØ temptsecÀÇ ¸â¹ö¸¦ Á¤ÀÇ
ÇÑ ÈÄ ÀÌ °´Ã¼ ÀÚü¸¦ ¸®ÅÏÇÑ´Ù. Tsec Ŭ·¡½ºÀÇ operator Time() º¯È¯ ÇÔ¼öµµ
°ÅÀÇ µ¿ÀÏÇÑ ±¸Á¶·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ¿©±â±îÁö Ŭ·¡½º³¢¸®ÀÇ µ¥ÀÌÅÍ Å¸ÀÔ º¯È¯
¿¡ ´ëÇؼ­ ¸ðµÎ ´Ù ¾Ë¾Æº¸¾Ò°í À§ ¿¹Á¦¿¡ ³ªÅ¸³­ ÈÄÀ§ ÂüÁ¶(forward reference)
¿¡ ´ëÇØ ¾ð±ÞÀ» Çغ¸ÀÚ. À§ ¿¹Á¦ÀÇ 13Çà¿¡¼­ Time Ŭ·¡½º Á¤Àǹ®¿¡¼­ ŸÀÔ º¯
ȯ ÇÔ¼öÀÎ operator Tsec();ÀÇ ¿øÇüÀ» ¹àÈ÷°í ÀÖ´Ù. ±×·¯³ª Ŭ·¡½º TsecÀÇ Á¤
ÀÇ´Â 19Çà¿¡¼­ºÎÅÍ ½ÃÀ۵ȴÙ. C++ÀÌ 1 pass ¹æ½ÄÀÌ´Ù º¸´Ï 13Çà¿¡¼­ Time¸¦ ÄÄ
ÆÄÀÏÇÒ ¶§´Â TsecÀÌ Å¬·¡½º À̸§ÀÎÁö ¾î¶²Áö ÄÄÆÄÀÏ·¯°¡ ¾Ë ¼ö°¡ ¾ø´Ù. ±×·¡¼­
´ÙÀ½°ú °°Àº ¿¡·¯¸¦ ³»°Ô µÉ °ÍÀÌ´Ù.

Compiling CHG3.CPP:
Error CHG3.CPP 5: Declaration  terminated  incorrectlyError
CHG3.CPP 30: Overloadable  operator  expectedError  CHG3.CPP
30: Declaration  terminated  incorrectlyError  CHG3.CPP  38:
Type qualifier 'Time' must be a struct or class name
Error CHG3.CPP 38: Declaration terminated incorrectly

ÀÌ·± ¿¡·¯°¡ ¾È³ªµµ·Ï Çϱâ À§Çؼ­´Â 13Çà ÀÌÀü¿¡ Ŭ·¡½º Tsec¸¦ Á¤ÀÇÇØÁÖ¾î
¾ß ÇÑ´Ù. ±×·¯³ª À§ ¿¹Á¦¿¡¼­´Â ¾çÂÊ Å¬·¡½º¿¡¼­ ¼­·Î¸¦ ÂüÁ¶Çϱ⠶§¹®¿¡ ¼ø¼­
¸¦ ¹Ù²ãµµ ¸¶Âù°¡Áö°¡ µÈ´Ù. ±×·¡¼­ Ŭ·¡½º°¡ Á¤ÀǵDZâ Àü¿¡ ÂüÁ¶°¡ µÉ ¶§´Â
¸ÕÀú ÂüÁ¶µÇ´Â ¸íĪÀÌ Å¬·¡½ºÀÓÀ» ¾Õ¿¡¼­ ¹àÇô ÁÖ¾î¾ß ÇÑ´Ù. À§ ¿¹Á¦ÀÇ 2,3Çà
À» º¸¸é Tsec¿Í TimeÀÌ Å¬·¡½ºÀÓÀ» Ŭ·¡½º Á¤ÀÇ Àü¿¡ ÀÌ¹Ì ¹àÈ÷°í ÀÖ´Ù.


********************************************************
********************************************************
5-5 µ¿Àû °´Ã¼ »ý¼º


Ŭ·¡½º¸¦ Á¤ÀÇÇÏ°í ±× Å¬·¡½ºÇüÀÇ °´Ã¼¸¦ ¸¸µé ¶§ º¸Åë Á¤ÀûÀÎ ¹æ¹ýÀ¸·Î °´Ã¼
¸¦ »ý¼ºÇÑ´Ù. ´ÙÀ½ÀÌ Á¤ÀûÀ¸·Î °´Ã¼¸¦ »ý¼ºÇÏ´Â ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù.

#include <iostream.h>
class Time {
protected:
 int hour,min,sec;
public:
 Time(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()
{
Time t1(10,12,34);      // Á¤Àû °´Ã¼ÀÇ »ý¼º
t1.outtime();
}

TimeÇüÀÇ Å¬·¡½º·Î ºÎÅÍ °´Ã¼ t1À» »ý¼º½ÃÅ°¸ç ÀÌ ¶§ °´Ã¼°¡ »ý¼ºµÇ´Â ¸Þ¸ð¸®
À§Ä¡´Â Àü¿ª º¯¼öÀÏ °æ¿ì´Â Á¤Àû µ¥ÀÌÅÍ ¿µ¿ªÀÌ µÇ¸ç Áö¿ª º¯¼öÀÏ °æ¿ì´Â stac
kÀÌ µÈ´Ù. ÀÌ·¸°Ô »ý¼ºµÈ °´Ã¼´Â °´Ã¼°¡ À¯È¿ÇÑ ¹üÀ§¸¦ ¹þ¾î³ª´Â ¼ø°£¿¡ ÀÚµ¿
À¸·Î ¼Ò¸êµÈ´Ù. µ¿ÀûÀ¸·Î °´Ã¼¸¦ ¼±¾ðÇÏ´Â ¹æ¹ýÀº ¸¶Ä¡ malloc ÇÔ¼ö¸¦ »ç¿ëÇÏ
¿© heap¿¡ °´Ã¼¸¦ »ý¼º½ÃÅ°´Â ¹æ¹ý°ú À¯»çÇϸç C++¿¡¼­´Â malloc ÇÔ¼ö ´ë½Å¿¡
new ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ¸Þ¸ð¸®¸¦ ÇÒ´çÇÑ´Ù. ´ÙÀ½ÀÌ new ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© µ¿
ÀûÀ¸·Î °´Ã¼¸¦ »ý¼º½ÃŲ ¿¹ÀÌ´Ù.

#include <iostream.h>
class Time {
protected:
 int hour,min,sec;
public:
 Time(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()
{
Time *t1;               // µ¿Àû °´Ã¼ÀÇ ¹øÁö¸¦  pointÇÒ  º¯¼ö
t1=new Time(10,12,34);  // µ¿Àû °´Ã¼ÀÇ »ý¼º
t1->outtime();
delete t1;
}

new ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚ·Î ÁÖ¾îÁø Ŭ·¡½ºÇüÀÇ °´Ã¼°¡ ÇÊ¿ä·Î ÇÏ´Â ¸Þ¸ð¸®¸¦ he
apÀ¸·ÎºÎÅÍ µ¿ÀûÀ¸·Î ÇÒ´çÇÏ¿© ±× ½ÃÀÛ ¹øÁö¸¦ ¸®ÅÏÇØÁØ´Ù. µû¶ó¼­ new ¿¬»êÀÚ
¸¦ »ç¿ëÇÏ¿© µ¿ÀûÀ¸·Î °´Ã¼¸¦ »ý¼º½ÃÅ°±â À§Çؼ­´Â »ý¼º½ÃÅ°°íÀÚ ÇÏ´Â °´Ã¼ÀÇ
¹øÁö¸¦ pointÇÒ Æ÷ÀÎÅÍ º¯¼ö°¡ ÇÊ¿äÇϸç ÀÌ Æ÷ÀÎÅÍÇüÀº °´Ã¼ÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÎ
Ŭ·¡½ºÇüÀÌ µÇ¾î¾ß ÇÑ´Ù. new ¿¬»êÀÚ´Â °´Ã¼¸¦ »ý¼º½Ãų ¶§ ÀÚµ¿À¸·Î »ý¼ºÀÚ¸¦
È£ÃâÇÏ¿© °´Ã¼¸¦ »ý¼ºÇÒ ¼ö ÀÖµµ·Ï ÇØÁֹǷΠnew ¿¬»êÀÚ¿¡ ÀÇÇÑ °´Ã¼ »ý¼º½ÄÀº
´ÙÀ½°ú °°ÀÌ ÀϹÝÈ­½Ãų ¼ö ÀÖ´Ù.

ptr=new class(»ý¼ºÀÚÀÇ Àμö)

new ¿¬»êÀÚ´Â ¸Þ¸ð¸®¸¦ ÇÒ´çÇÔ°ú µ¿½Ã¿¡ »ý¼ºÀÚ·Î ³Ñ°ÜÁú Àμö¸¦ º¸°í Àû´çÇÑ
»ý¼ºÀÚ¸¦ È£ÃâÇØÁØ´Ù. new ¿¬»êÀÚ¿¡ ÀÇÇØ ¸®ÅÏµÈ ¹øÁö°ªÀº t1 Æ÷ÀÎÅÍ º¯¼ö¿¡
´ëÀԵǾîÁ® ÀÌÈĺÎÅÍ °´Ã¼¸¦ ´ë½ÅÇÏ°Ô µÈ´Ù. t1ÀÌ Æ÷ÀÎÅÍ º¯¼öÀ̹ǷΠÀÌ º¯¼ö
¸¦ »ç¿ëÇÏ¿© °´Ã¼ÀÇ ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§´Â . ¿¬»êÀÚ ´ë½Å¿¡ -> ¿¬»êÀÚ¸¦ »ç
¿ëÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô µ¿ÀûÀ¸·Î »ý¼ºµÈ °´Ã¼´Â scope ruleÀÇ ÅëÁ¦¸¦ ¹ÞÁö ¾ÊÀ¸
¸ç ´Éµ¿ÀûÀ¸·Î Áö¿öÁöÁö ¾Ê´Â ÇÑÀº ¾ðÁ¦±îÁö³ª heap¿¡ °è¼Ó ³²¾Æ ÀÖ°Ô µÈ´Ù. h
eap¿¡ »ý¼ºµÈ °´Ã¼¸¦ Áö¿ï ¶§´Â delete ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. µ¿ÀûÀ¸·Î °´Ã¼ÀÇ
¹è¿­À» »ý¼ºÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.

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


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

    

 ´ÙÀ½