[C++]2ºÎ°­ÁÂ(42)<--¿À¹ö·Îµù ¿¹





¶ÇÇÑ »ç¿ëÀÚ°¡ ¸¸µç ¿¬»êÀÚ´Â ¿ì¼± ¼øÀ§°¡ Á¤ÇØÁ® ÀÖÁö ¾Ê±â ¶§¹®¿¡ c=1+a**b
¶ó´Â ½Ä¿¡¼­ µ¡¼ÀÀÌ ¸ÕÀúÀÎÁö ´©½ÂÀÌ ¸ÕÀúÀÎÁö ¾Ë ¼ö°¡ ¾ø´Ù. ¹°·Ð ¿¬»ê ¼øÀ§
³ª ´Ù¸¥ ¿¬»êÀÚ¿ÍÀÇ ¸ðÈ£ÇÔÀº »ç¿ëÀÚ°¡ ÁöÁ¤À» ÇÔÀ¸·Î½á ÇØ°áÇÒ ¼öµµ ÀÖÁö¸¸
¿¬»êÀÚ Çϳª ¾²±â À§ÇØ ÀÌ·± º¹ÀâÇÑ ÁöÁ¤±îÁö ÇØ¾ß ÇÑ´Ù¸é Â÷¶ó¸® ¾È ¾²´Â °Í
º¸´Ùµµ ´õ ¸øÇÑ ²ÃÀÌ µÇ°í ¸¸´Ù. »ç¿ëÀÚ°¡ ÀÓÀÇ·Î ¿¬»êÀÚ¸¦ ¸¸µé ¼ö ÀÖµµ·Ï ÇÏ
´Â °ÍÀº ÀÌ·Ð»ó °¡´ÉÇÏÁö¸¸ ±×·¸°Ô ÇØ ºÁ¾ß µæº¸´Ù´Â ½ÇÀÌ ´õ ¸¹±â ¶§¹®¿¡ ¾Æ
¿¹ Çã¿ëÀ» ÇÏÁö ¾Ê´Â´Ù.

µÑ°, C++ÀÇ ¸ðµç ¿¬»êÀÚ´Â ÃëÇÒ ¼ö ÀÖ´Â ÀμöÀÇ °³¼ö¿¡ µû¶ó Àμö°¡ Çϳª¸é
´ÜÇ× ¿¬»êÀÚ, µÑÀ̸é ÀÌÇ× ¿¬»êÀÚ µîÀ¸·Î ºÐ·ùÇÑ´Ù. ¿¬»êÀÚÀÇ ±â´ÉÀ» ¹Ù²Ù´õ¶ó
µµ ÃëÇÏ´Â ÀμöÀÇ °³¼ö´Â ¹Ù²Ü ¼ö°¡ ¾ø´Ù. + ¿¬»êÀÚ´Â ¿ø·¡ ÀÌÇ× ¿¬»êÀÚÀ̹ǷÎ
¿À¹ö·ÎµùµÈ ÈÄ¿¡µµ ÀÌÇ× ¿¬»êÀÚ°¡ µÇ¸ç ¹Ýµå½Ã ÇÇ¿¬»êÀÚ¸¦ µÎ °³ °¡Á®¾ß ÇÑ´Ù.

Time Time::operator +(Time T)            // °¡´É
Time Time::operator +(int i)             // °¡´É
friend operator +(Time T,int i)          // °¡´É  friend
operator +(Time T,Time S,int i);         // ºÒ°¡´ÉTime
Time::operator +(void)                   // ºÒ°¡´ÉTime
Time::operator +(Time T,int i)           //  ºÒ°¡´É

³× ¹ø° ¿¹´Â friend ÇÔ¼öÀÌ°í Àμö¸¦ ¼¼ °³ °¡Áö¹Ç·Î ÇÇ¿¬»êÀÚ°¡ ¼¼ °³³ª µÇ
±â ¶§¹®¿¡ ºÒ°¡´ÉÇÏ¸ç ´Ù¼¸ ¹ø° ¿¹´Â Àμö°¡ Çϳªµµ ¾ø°í friend ÇÔ¼ö°¡ ¾Æ´Ñ
¸â¹ö ÇÔ¼öÀ̹ǷΠÇÇ¿¬»êÀÚ°¡ Çϳª¹Û¿¡ ¾ø¾î¼­ ºÒ°¡´ÉÇÏ´Ù. ¿©¼¸ ¹ø° ¿¹´Â ÀÎ
¼ö°¡ µÎ °³ÀÌ¸ç ¸â¹ö ÇÔ¼öÀ̹ǷΠÇÇ¿¬»êÀÚ°¡ ¼¼ °³ÀÌ°í µû¶ó¼­ ºÒ°¡´ÉÇÏ´Ù.

¼¼Â°, ¿¬»êÀÚÀÇ ±â´ÉÀÌ ¹Ù²î´õ¶óµµ ¿¬»ê ¼øÀ§´Â ¿ø·¡´ë·Î À¯ÁöµÈ´Ù. + ¿¬»êÀÚ
ÀÇ ±â´ÉÀ» ¹Ù²Ù¾î °ö¼ÀÀ» Çϵµ·Ï ¸¸µé¾ú´Ù ÇÏ¿©µµ + ¿¬»êÀÚÀÇ ¿¬»ê ¼øÀ§´Â ¿©
ÀüÈ÷ ±×´ë·ÎÀÌ´Ù. µû¶ó¼­ ¿¬»êÀÚ¸¦ ¿À¹ö·ÎµùÇÏ¿© »ç¿ëÇÒ ¶§´Â ¿¬»êÀÇ ¿ì¼± ¼ø
À§¿¡ ´ëÇÏ¿© ¼¼½ÉÇÑ ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù. ¿¬»ê ¼øÀ§»Ó¸¸ ¾Æ´Ï¶ó °áÇÕ ¼ø¼­µµ
¸¶Âù°¡Áö·Î À¯ÁöµÈ´Ù.

³×°, C++¿¡¼­ Á¦°øÇÏ´Â ¿¬»êÀÚ Áß¿¡ ´ÙÀ½ÀÇ ¿¬»êÀÚµéÀº ±â´ÉÀ» ÀçÁ¤ÀÇÇÒ ¼ö
¾øµµ·Ï µÇ¾î ÀÖ´Ù.

.(±¸Á¶Ã¼ ¸â¹ö ¿¬»êÀÚ)    ::(scope ¿¬»êÀÚ)
?:(»ïÇ× Á¶°Ç ¿¬»êÀÚ)     .*                sizeof

ÀÌ ¿¬»êÀÚµéÀº C++ÀÇ ´ëÇ¥Àû ±â´ÉÀ̶ó ÇÒ ¼ö Àִ Ŭ·¡½º¿¡ °ü°èµÈ ¿¬»êÀÚÀÌ
±â ¶§¹®¿¡ Ŭ·¡½º¸¦ ±â¹ÝÀ¸·Î ÀçÁ¤ÀǵǴ ¿¬»êÀÚ ¿À¹ö·ÎµùÀÇ Àç·á·Î ¾²±â¿¡´Â
¹«¸®°¡ µû¸¥´Ù. »ïÇ× Á¶°Ç ¿¬»êÀÚ´Â ÇÇ¿¬»êÀÚ°¡ ¼ÂÀ̳ª µÇ±â ¶§¹®¿¡ ¿À¹ö·Îµù
À» ÇÏ´õ¶óµµ ±î´Ù·Ó±â ¶§¹®¿¡ ÀçÁ¤ÀǸ¦ ¸øÇϵµ·Ï µÇ¾î ÀÖ´Ù. ÀçÁ¤ÀǸ¦ ¸øÇÏ´Â
¿¬»êÀÚµµ ÀÖ±â´Â ÇÏÁö¸¸ C¿¡´Â ¿¬»êÀÚ°¡ dzºÎÇÏ°Ô Á¸ÀçÇϹǷΠ»ç½Ç ¿À¹ö·ÎµùÀÇ
Àç·á·Î ¾µ ¼ö ÀÖ´Â ¿¬»êÀÚ´Â ¸¹°íµµ ¸¹Àº ÆíÀÌ´Ù.

´Ù¼¸Â°, ±âº» ÀÚ·áÇü¿¡ ´ëÇÑ ¿¬»êÀÚ¸¦ ÀçÁ¤ÀÇÇÒ ¼ö´Â ¾ø´Ù. ¿¬»êÀÚ ¿À¹ö·Îµù
Àº »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ µ¥ÀÌÅÍ Å¸ÀÔ¿¡ °üÇÑ ¿¬»êÀ» Á¤ÀÇÇÏ´Â °ÍÀÌÁö ÀÌ¹Ì Á¤ÀǵÇ
¾î ÀÖ´Â ±âº» ¿¬»êÀ» ¹Ù²Ù´Â °ÍÀº ¾Æ´Ï´Ù. ¸¸¾à ´ÙÀ½°ú °°ÀÌ Á¤¼ö³¢¸®ÀÇ µ¡¼À
À» ÇÏ´Â ¿¬»êÀ» »ç¿ëÀÚ°¡ ¸¶À½´ë·Î Á¤ÀÇÇÏ¿´´Ù°í Çغ¸ÀÚ.

int operator +(int a,int b)
{
ÇÔ¼öÀÇ º»Ã¼
}

°¡Àå ±âº»ÀûÀÎ ¿¬»êÀÎ Á¤¼öÀÇ µ¡¼ÀÀ» ¹Ù²Ù¾î ¹ö¸®¸é ±× ÀÌÈÄÀÇ È¥¶õÀº µû·Î
¼³¸íÇÏÁö ¾Ê¾Æµµ ½±°Ô ÁüÀÛÀÌ °¥ °ÍÀÌ´Ù. ¿¬»êÀÚ ÇÔ¼ö´Â Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼öÀÌ
°Å³ª, friend ÇÔ¼öÀÌ´õ¶óµµ ÇÇ¿¬»êÀÚ·Î ¹Ýµå½Ã »ç¿ëÀÚ°¡ ¸¸µç Ŭ·¡½ºÀÇ °´Ã¼¸¦
°¡Á®¾ß¸¸ ÇÑ´Ù. Áï ¿¬»êÀÚ°¡ ¿À¹ö·ÎµùµÉ ¼ö ÀÖ´Â °æ¿ì´Â ¿¬»êÀÇ ´ë»óÀÌ »ç¿ëÀÚ
°¡ ¸¸µç °´Ã¼ÀÎ °æ¿ì¿¡ ÇÑÇؼ­ÀÌ´Ù.

¿¬»êÀÚ¸¦ ÀçÁ¤ÀÇÇÏ°Ô µÇ¸é ¾î¶² °æ¿ì¿¡´Â º¹ÀâÇÑ °ÍÀ» °£´ÜÇÏ°Ô, »ê¸¸ÇÑ °ÍÀ»
Á» ´õ ³í¸®ÀûÀ¸·Î Ç¥ÇöÇس¾ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ±×¿¡ µû¸¥ ºÎÀÛ¿ëÀÌ ÀÖÀ½À» ¾Ë¾Æ
¾ß ÇÑ´Ù. ¿¬»êÀÚ¸¦ ¿©·¯ ÇüÅ·Π´ÙÁß Á¤ÀÇÇØ ³õÀ¸¸é ÄÚµå ÀÚü°¡ ÀÌÇØÇϱ⠾î
·Æ°Ô µÇ±âµµ Çϸç, ´Ù¸¥ »ç¶÷ÀÌ ÀÚ½ÅÀÇ ÀÛÇ°À» ºÐ¼®ÇÒ ¶§ ÀÏÀÏÀÌ ±× ¿¬»êÀÚ°¡
¾î¶»°Ô Á¤ÀǵǾî ÀÖ´ÂÁö¸¦ Á¶»çÇغ¸¾Æ¾ß Çϸç, ±× Äڵ尡 Á¤ÀǵǾî ÀÖ´Â ¼Ò½º
ÆÄÀÏÀÌ ¾øÀÌ ¶óÀ̺귯¸® ÇüÅ·ΠµÇ¾î ÀÖ´Ù¸é ¿¬»êÀÚÀÇ Á¤ÀÇ ³»¿ëÀ» ¾Ë ¼ö°¡ ¾ø
¾îÁø´Ù. ¹°·Ð ÁÖ¼®À» ´Þ¾Æ ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖÁö¸¸ ³Ê¹« º¹ÀâÇÏ°Ô µÇ¸é
ÀÏÁ¤ ½Ã°£ÀÌ Áö³­ ÈÄ¿¡´Â ÀÚ±â Àڽŵµ ÀÌÇØÇÏÁö ¸øÇÏ´Â °æ¿ì°¡ »ý±â±âµµ ÇÑ´Ù.
¿¬»êÀÚ ¿À¹ö·Îµù ±â´ÉÀº ²À ÇÊ¿äÇÒ ¶§°¡ ¾Æ´Ï¸é ÀÚÁ¦ÇÏ´Â ÆíÀÌ ÁÁÀ¸¸ç ¿©±â¼­
¿¬»êÀÚ¸¦ ÀçÁ¤ÀÇÇÏ´Â ¹æ¹ýÀ» °øºÎÇÏ´Â ÀÌÀ¯´Â ÀÌ¹Ì ÀÛ¼ºµÇ¾î ÀÖ´Â ¶óÀ̺귯¸®
³ª I/O stream, ³²ÀÌ ±¸ÃàÇسõÀº Ŭ·¡½º¸¦ Á»´õ ½Å¼ÓÇÏ°Ô ÀÌÇØÇÏ°í Àû±ØÀûÀ¸·Î
È°¿ëÇϱâ À§Çؼ­ÀÌ´Ù.

********************************************************
********************************************************
4-4 ¿À¹ö·Îµù ¿¹


¿À¹ö·ÎµùÀÇ ±ÔÄ¢À» ¾Æ´Â °Íµµ ¹°·Ð Áß¿äÇÏÁö¸¸ °ú¿¬ ¾î¶² °æ¿ì¿¡ ¿¬»êÀÚ¸¦ Àç
Á¤ÀÇÇÔÀ¸·Î½á ÇÁ·Î±×·¡¹ÖÀÇ È¿À²À» Çâ»ó½Ãų ¼ö ÀÖ´Â °¡¸¦ ¾Æ´Â °Íµµ Áß¿äÇÏ´Ù.
¿¬»êÀÚ ¿À¹ö·ÎµùÀº ÀûÀýÇÑ °÷¿¡ »ç¿ëµÇÁö ¾ÊÀ¸¸é ¿ÀÈ÷·Á ±×³É ÇÔ¼ö¸¦ ¾²´Â °Í
¸¸µµ ¸øÇÑ °æ¿ì°¡ ¸¹ÀÌ ÀÖ´Ù. »ç¿ëÀÚ°¡ Á¤ÀÇÇÑ Å¬·¡½º¸¦ ÃÖ´ëÇÑ Æí¸®ÇÏ°Ô Àß
È°¿ëÇÒ ¼ö ÀÖÀ» ¶§¿¡¸¸ ¿¬»êÀÚ¸¦ ÀçÁ¤ÀÇÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¿©±â¿¡ ¸î °¡Áö ¿¬»ê
ÀÚ¸¦ ÀçÁ¤ÀÇÇÑ ¿¹¸¦ º¸À̹ǷΠ¿¬»êÀÚ°¡ ¾î¶°ÇÑ ÆÐÅÏÀ¸·Î ÀçÁ¤ÀǵǴ°¡¿Í ÀçÁ¤
Àǽÿ¡ ¾î¶² ÀÌÁ¡ÀÌ »ý±â´Â°¡¸¦ »ìÆ캸±â ¹Ù¶õ´Ù.


°¡. °ü°è ¿¬»êÀÚ

TimeÇü Ŭ·¡½º°¡ ÀÏ¹Ý »ê¼úÇü µ¥ÀÌÅÍ¿Í ´Ù¸£¹Ç·Î ½Ã°£³¢¸®ÀÇ ´ë¼Ò ºñ±³¸¦ ÇÏ
´Â °úÁ¤µµ ´ç¿¬È÷ ´Ù¸£´Ù. ±×·¡¼­ TimeÇüÀÇ °´Ã¼³¢¸® ´ë¼Ò ºñ±³³ª µî°¡ ºñ±³¸¦
Çϱâ À§Çؼ­µµ ¿¬»êÀÚ¸¦ º°µµ·Î Á¤ÀÇÇØ¾ß ÇÑ´Ù. ¾Æ·¡ÀÇ ¸®½ºÆ®´Â TimeÇü °´Ã¼
ÀÇ ºñ±³¸¦ ÇÒ ¼ö ÀÖµµ·Ï ¸ðµç °ü°è ¿¬»êÀÚ¸¦ ´Ù Á¤ÀÇÇÑ °ÍÀÌ´Ù.

#include <stdio.h>
#include <iostream.h>
class Time {
protected:
 int hour,min,sec;
public:
 void settime(int h,int m,int s) {
   hour=h;
   min=m;
   sec=s;
   return;
   }
 void outtime();
 int operator >(Time T);       // ½Ã°£³¢¸® Å©±â ºñ±³¸¦ ÇÑ´Ù.
 int operator ==(Time T);      // ½Ã°£ÀÇ µî°¡  ºñ±³¸¦  ÇÑ´Ù.
 int operator !=(Time T)
 {
   return !(*this==T);
 }
 int operator <(Time T)
 {
   return !(*this==T || *this>T);
 }
 int operator >=(Time T)
 {
   return (*this==T || *this>T);
 }
 int operator <=(Time T)
 {
   return !(*this>T);
 }
};
int Time::operator >(Time T)    // > ¿¬»êÀÚ ÇÔ¼öÀÇ Á¤ÀÇ
{
if  (hour>T.hour)  return  1;     //  ¸ÕÀú  ½Ã°£À»  ºñ±³
if  (hour<T.hour) return 0;
if (min>T.min) return 1;      // ½Ã°£ÀÌ °°À¸¸é ºÐÀ» ºñ±³
if (min<T.min) return 0;
if (sec>T.sec) return 1;      // ºÐÀÌ °°À¸¸é Ãʸ¦ ºñ±³
else return 0;
}
int Time::operator ==(Time T)   // == ¿¬»êÀÚ ÇÔ¼öÀÇ Á¤ÀÇ
{
if (hour==T.hour && min==T.min && sec==T.sec)
 return 1;
else return 0;
}
void Time::outtime(void)
{
cout << "time is " << hour << " hour " << min
    << " minute " << sec << " second." << endl;
}
void main()
{
Time a,b,c;
a.settime(2,12,23);    // Time °´Ã¼¸¦ ¼¼ °³ ¸¸µé°í °ªÀ» ÀÏ´Ü º¸¿©ÁØ´Ù.
b.settime(2,12,28);
c.settime(2,12,23);
cout << "a : ";
a.outtime();
cout << "b : ";
b.outtime();
cout << "c : ";
c.outtime();
if (a>b) cout << "a is bigger than b" << endl;
else cout << "a is smaller or equal  than  b"  <<  endl;
if (a>=c) cout << "a is bigger or equal than  c"  <<  endl;
else cout << "a is smaller than c" << endl;
}

Ãâ·Â °á°ú´Â ´ÙÀ½°ú °°´Ù. °ú¿¬ Á¦´ë·Î ºñ±³µÇ¾ú´ÂÁö¸¦ »ìÆ캸¾Æ¶ó.

a : time is 2 hour 12 minute 23 second.
b : time is 2 hour 12 minute 28 second.
c : time is 2 hour 12 minute 23 second.
a is smaller or equal than b
a is bigger or equal than c

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


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

    

 ´ÙÀ½