26-3-´Ù.Ŭ·¡½º°£ÀÇ º¯È¯

¾Õ µÎ Ç׿¡¼­ Ŭ·¡½º¿Í ±âº» ŸÀÔ°£ÀÇ º¯È¯¿¡ ´ëÇØ ¿¬±¸ÇØ º¸¾Ò´Âµ¥ ÀÌ·± º¯È¯ ÀåÄ¡µéÀº Ŭ·¡½º¿¡°Ô °¡±ÞÀû ±âº» ŸÀÔ°ú µ¿µîÇÑ ÀÚ°ÝÀ» ÁÖ±â À§ÇØ ¸¶·ÃµÈ °ÍµéÀÌ´Ù. À̹ø¿¡´Â Ŭ·¡½º³¢¸®ÀÇ º¯È¯¿¡ ´ëÇØ ¾Ë¾Æº¸µÇ Ŭ·¡½º°¡ ŸÀÔÀ̹ǷΠ»ç½Ç À̴ Ŭ·¡½º¿Í ±âº» ŸÀÔ°£ÀÇ º¯È¯°ú ÀüÇô Ʋ¸®Áö ¾Ê´Ù. °£´ÜÇÑ ¿¹Á¦ Çϳª·Î Ŭ·¡½º°£ÀÇ º¯È¯À» ¿¬±¸ÇØ º¸ÀÚ. ´ÙÀ½ ¿¹Á¦´Â ¼·¾¾ Ŭ·¡½º¿Í È­¾¾ Ŭ·¡½º°£À» º¯È¯ÇÑ´Ù.

 

¿¹ Á¦ : CelFah

#include <Turboc.h>

 

class Fahrenheit;

class Celsius

{

public:

     double Tem;

     Celsius() { }

     Celsius(double aTem) : Tem(aTem) { }

     operator Fahrenheit();

     void OutTem() { printf("¼·¾¾=%f\n",Tem); }

};

 

class Fahrenheit

{

public:

     double Tem;

     Fahrenheit() { }

     Fahrenheit(double aTem) : Tem(aTem) { }

     operator Celsius();

     void OutTem() { printf("È­¾¾=%f\n",Tem); }

};

 

Celsius::operator Fahrenheit()

{

     Fahrenheit F;

     F.Tem=Tem*1.8+32;

     return F;

}

 

Fahrenheit::operator Celsius()

{

     Celsius C;

     C.Tem=(Tem-32)/1.8;

     return C;

}

 

void main()

{

     Celsius C(100);

     Fahrenheit F=C;

     C.OutTem();

     F.OutTem();

 

     printf("\n");

     Fahrenheit F2=120;

     Celsius C2=F2;

     F2.OutTem();

     C2.OutTem();

}

 

µÎ Ŭ·¡½º°¡ ¼­·Î¸¦ »óÈ£ ÂüÁ¶ÇϹǷΠ¼ø¼­¸¦ Á¤ÇÒ ¼ö ¾øÀ¸¸ç ³ªÁß¿¡ ¼±¾ðµÇ´Â Ŭ·¡½º¿¡ ´ëÇÑ Àü¹æ ¼±¾ðÀÌ ÇÊ¿äÇÏ´Ù. class Fahrenheit; ¼±¾ð¹®Àº ÀÌ ¸íĪÀÌ Å¬·¡½ºÀÇ ÀÏÁ¾À̶ó´Â °ÍÀ» ¹Ì¸® ¾Ë¸®¸ç º¯È¯ ÇÔ¼öÀÇ ¿øÇü ¼±¾ðÀ» À§ÇØ Àü¹æ ¼±¾ðÀÌ ¸ÕÀú µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. °¢ Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼öµéÀº »ó´ë¹æ Ŭ·¡½ºÀÇ ¸ð¾çÀ» Á¤È®ÇÏ°Ô ¾Ë¾Æ¾ß ÇϹǷΠ¿ÜºÎ Á¤ÀǸ¸ °¡´ÉÇÏ´Ù.

¼·¾¾, È­¾¾´Â µÑ ´Ù ¿Âµµ¸¦ ³ªÅ¸³»´Â ´ÜÀ§Àε¥ ¼·¾¾´Â ¹°ÀÇ ¾î´ÂÁ¡À» 0µµ, ²ú´Â Á¡À» 100µµ·Î Á¤ÇÏ°í ±× »çÀÌÀÇ ¿Âµµ¸¦ 100µîºÐÇÑ °ÍÀ̸ç È­¾¾´Â ¾î´ÂÁ¡, ²ú´Â Á¡À» °¢°¢ 32µµ, 212µµ·Î Á¤ÇÏ°í ±× »çÀÌÀÇ ¿Âµµ¸¦ 180µîºÐÇÑ °ÍÀÌ´Ù. µÎ ¿Âµµ´Â ´ÙÀ½°ú °°Àº °ø½ÄÀ¸·Î º¯È¯ °¡´ÉÇѵ¥ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº ³×À̹ö Áö½ÄÀÎÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.

 

C=(F-32)/1.8

F=C*1.8+32

 

¿¹Á¦´Â ÀÌ °ø½Ä¿¡ µû¶ó Celsius Ŭ·¡½º¿¡ È­¾¾·Î ¹Ù²Ù´Â º¯È¯ ÇÔ¼ö¸¦ Á¤ÀÇÇϰí Fahrenheit Ŭ·¡½º¿¡ ¼·¾¾·Î ¹Ù²Ù´Â º¯È¯ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. °¢ º¯È¯ ÇÔ¼ö´Â »ó´ëÆíÀÇ Àӽà °´Ã¼¸¦ ¸¸µç ÈÄ º¯È¯ °ø½Ä´ë·Î ÃʱâÈ­ÇÏ¿© ¸®ÅÏÇÑ´Ù. Áö¿ªº¯¼ö¸¦ ¸®ÅÏÇÏ´Â Äڵ尡 »ó´çÈ÷ ¾î»öÇØ º¸À̰ÚÁö¸¸ º¯È¯ÇÒ ¶§¸¸ Àá½Ã »ç¿ëÇϰí È£Ãâ °´Ã¼¿¡ ´ëÀÔµÇ¸é »ç¶óÁ®µµ »ó°ü¾øÀ¸¹Ç·Î º° ¹®Á¦°¡ µÇÁö´Â ¾Ê´Â´Ù.

µÎ Ŭ·¡½ºÀÇ °´Ã¼³¢¸®´Â ¾Ï½ÃÀûÀÎ º¯È¯ÀÌ °¡´ÉÇÏ¿© »óÈ£ Ãʱâ½Ä¿¡ »ç¿ëÇÒ ¼ö ÀÖ°í ¾ðÁ¦µçÁö »ó´ëÆíÀÇ °´Ã¼¸¦ ´ëÀÔÇÒ ¼ö ÀÖ´Ù. ´ëÀÔÀÌ °¡´ÉÇϹǷΠ¼­·ÎÀÇ Àμö¸¦ ¿ä±¸ÇÏ´Â ÇÔ¼ö·Îµµ Àü´ÞÇÒ ¼ö ÀÖ´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù.

 

¼·¾¾=100.000000

È­¾¾=212.000000

 

È­¾¾=120.000000

¼·¾¾=48.888889

 

µÎ Ŭ·¡½º°¡ »óÈ£ÀÇ Å¸ÀÔÀ¸·Î º¯È¯ÇÏ´Â ÇÔ¼ö¸¦ Á¦°øÇÏ´Â ´ë½Å ÇÑÂÊ Å¬·¡½º°¡ º¯È¯ »ý¼ºÀÚ¿Í º¯È¯ ÇÔ¼ö¸¦ µ¿½Ã¿¡ Á¦°øÇÏ´Â ¹æ½Äµµ °¡´ÉÇÏ´Ù. Celcius::operator Farenheit() º¯È¯ ÇÔ¼ö¸¦ Á¦°ÅÇϰí Farenheit¿¡ Celsius ŸÀÔÀ¸·ÎºÎÅÍ ÀÚ½ÅÀ» »ý¼ºÇÏ´Â º¯È¯ »ý¼ºÀÚ¸¦ Á¤ÀÇÇØ º¸ÀÚ.

 

class Fahrenheit

{

public:

     double Tem;

     Fahrenheit() { }

     Fahrenheit(double aTem) : Tem(aTem) { }

    Fahrenheit(Celsius C) {

        Tem=C.Tem*1.8+32;

    }

     operator Celsius();

     void OutTem() { printf("È­¾¾=%f\n",Tem); }

};

 

ÀÌ·¸°Ô ÇØµµ °á°ú´Â µ¿ÀÏÇÏ´Ù. Celsius°¡ ÀÚ½ÅÀ» Farenheit·Î º¯È¯Çϳª Farenheit°¡ Celsius·ÎºÎÅÍ ÀÚ½ÅÀ» »ý¼ºÇϳª °á±¹Àº °°Àº º¯È¯ÀÎ °ÍÀÌ´Ù. º¯È¯ »ý¼ºÀÚ¿Í º¯È¯ ÇÔ¼ö´Â »óÈ£ ´ëü¼ºÀÌ ÀÖ´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¾î·µç ¾ç¹æÇâÀ¸·Î µÎ °³ÀÇ ÇÔ¼ö°¡ ÀÖÀ¸¸é µÈ´Ù.

±×·¸´Ù¸é º¯È¯ ÇÔ¼ö¸¸À¸·Î ÇÊ¿äÇÑ º¯È¯À» ´Ù ÇÒ ¼ö Àִµ¥ º¯È¯ »ý¼ºÀÚ´Â ±»ÀÌ ¿Ö ¸¸µé¾î ³õÀº °ÍÀϱî? ±× ÀÌÀ¯´Â ±âº» ŸÀÔÀº ÄÄÆÄÀÏ·¯¿¡ ³»ÀåµÇ¾î ÀÖ¾î ¸¶À½´ë·Î ¼öÁ¤ÇÒ ¼ö ÀÖ´Â ´ë»óÀÌ ¾Æ´Ï¸ç º¯È¯ ÇÔ¼ö¸¦ Á¤ÀÇÇÒ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. ¿¹¸¦ µé¾î ¼·¾¾, È­¾¾ ¸ðµÎ ½Ç¼öÇüÀ¸·Î º¯È¯ °¡´ÉÇѵ¥ doubleÀÌ Å¬·¡½ºÇüÀ¸·Î º¯È¯ÇÏÁö ¸øÇϹǷΠŬ·¡½º°¡ double·ÎºÎÅÍ ÀÚ½ÅÀ» »ý¼ºÇØ¾ß Çϸç À̶§´Â º¯È¯ »ý¼ºÀÚ°¡ ²À ÇÊ¿äÇÏ´Ù.

int, double°°Àº ±âº» ŸÀÔ»Ó¸¸ ¾Æ´Ï¶ó »ç¿ëÀÚ Á¤ÀÇ Å¸ÀÔµµ ¶§·Î´Â ¼öÁ¤ÇÒ ¼ö ¾ø´Â °æ¿ì°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î »ó¿ë Ŭ·¡½º ¶óÀ̺귯¸®¸¦ ±¸ÀÔÇØ¼­ »ç¿ëÇϰí ÀÖ´Ù¸é ½ÊÁßÆÈ±¸ ¼Ò½º´Â ¾øÀ¸¹Ç·Î À̶§µµ ¶óÀ̺귯¸®³»ÀÇ Å¬·¡½º´Â ¼öÁ¤ ´ë»óÀÌ ¾Æ´Ï´Ù. ±×·¯¹Ç·Î ¾²´Â ÂÊ¿¡¼­ º¯È¯ »ý¼ºÀÚ¿Í º¯È¯ ÇÔ¼ö¸¦ ¸ðµÎ Á¦°øÇÒ ¼ö¹Û¿¡ ¾ø´Ù.

ÀÌ»óÀ¸·Î Ŭ·¡½º¿Í ±âº» ŸÀÔ, Ŭ·¡½º°£ÀÇ º¯È¯¿¡ ´ëÇØ ¿¬±¸ÇØ ºÃ´Âµ¥ ÇÔ¼ö¿¡ ÀÇÇØ º¯È¯ÀÌ ÀÌ·ç¾îÁö¹Ç·Î »ç½Ç»ó ¿øÇÏ´Â ¾î¶² ¹æ½ÄÀ¸·Îµµ º¯È¯ °¡´ÉÇÏ´Ù. ±×·¯³ª ŸÀÔ°£ÀÇ º¯È¯À̶õ ¼­·Î Á¶±ÝÀÌ¶óµµ ³í¸®ÀûÀΠȣȯ¼ºÀÌ ÀÖÀ» ¶§¸¸ Àǹ̰¡ ÀÖ´Ù´Â Á¡À» ¸í½ÉÇÏÀÚ. ¼·¾¾¿Í È­¾¾´Â µÑ ´Ù ¿Âµµ¶ó´Â ¹°¸®·®À» Ç¥ÇöÇÑ´Ù´Â Á¡¿¡¼­ °øÅëÀûÀÌ°í ¹üÀ§¸¸ ´Ù¸£±â ¶§¹®¿¡ °£´ÜÇÑ ¼ö½ÄÀ¸·Î º¯È¯ °¡´ÉÇÏ´Ù. TimeÀº Àý´ëÃʶó´Â °³³äÀ» µµÀÔÇ߱⠶§¹®¿¡ Á¤¼öÇü°ú ȣȯµÉ ¼ö ÀÖ¾ú´Ù.

±×·¯³ª Person°ú Timeó·³ ³í¸®ÀûÀ¸·Î ÀüÇô ȣȯµÇÁö ¾Ê´Â ŸÀÔ³¢¸® º¯È¯ ÇÔ¼ö¸¦ Á¦°øÇÏ´Â °ÍÀº ¾óÅä´çÅä ¾ÊÀº ÀÏÀÌ´Ù. C++Àº ÀÓÀÇÀÇ Å¸ÀÔ³¢¸® ¿øÇÏ´Â ¹æ¹ýÀ¸·Î º¯È¯ÇÒ ¼ö ÀÖ´Â ¹®¹ýÀ» Á¦°øÇϱâ´Â ÇÏÁö¸¸ Àý´ë·Î ÀÌ·± ±â´ÉÀ» ³²¿ëÇØ¼­´Â ¾ÈµÈ´Ù. ²À ÇÊ¿äÇÒ ¶§¸¸ ÁÖÀÇÇØ¼­ »ç¿ëÇ쵂 ÀڽžøÀ¸¸é ´çºÐ°£ ÀÌ·± ±â´ÉÀº ¾Æ¿¹ ¾ø´Ù°í »ý°¢ÇÏ´Â °ÍÀÌ ´õ ÁÁ´Ù. º¯È¯ ÇÔ¼ö´Â ³ª¸§´ë·Î Èï¹Ì´Â ÀÖÁö¸¸ ¼ÖÁ÷È÷ ½Ç¿ë¼ºÀº º°·Î ¾ø´Â ÆíÀÌ´Ù. À߸ø »ç¿ëÇÏ¸é ½É°¢ÇÑ ºÎÀÛ¿ëÀÌ ³ªÅ¸³¯ ¼öµµ ÀÖ°í ¿¹ÃøÇϱâ Èûµç ÇÔÁ¤µµ Á¸ÀçÇÑ´Ù.