[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
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------
´ÙÀ½