25-4-³ª.Ŭ·¡½º´Â ŸÀÔÀÌ´Ù

C++¿¡¼­´Â ±¸Á¶Ã¼ÀÇ Å±װ¡ ŸÀÔÀ¸·Î ½Â°ÝµÇ¾î ű׷κÎÅÍ ¹Ù·Î ±¸Á¶Ã¼ º¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ÀÖ´Ù. ±¸Á¶Ã¼°¡ ÇϳªÀÇ Å¸ÀÔÀ¸·Î ÀÎÁ¤µÇ´Â °Í°ú ¸¶Âù°¡Áö·Î Ŭ·¡½ºµµ ÇϳªÀÇ Å¸ÀÔÀ¸·Î Ãë±ÞµÈ´Ù. Ŭ·¡½ºÀÇ À̸§Àº int, double, char °°Àº ±âº»Çü ŸÀÔ°ú µ¿µîÇÑ ÀÚ°ÝÀ» °¡Áö¸ç »ç¿ë ¹æ¹ýµµ ¶È°°´Ù. C++Àº Ŭ·¡½º°¡ ¿ÏÀüÇÑ Å¸ÀÔÀÌ µÇ±â À§ÇÑ ¿©·¯ °¡Áö ¾ð¾îÀû ÀåÄ¡(»ý¼ºÀÚ, ¿¬»êÀÚ ¿À¹ö·Îµù µî)¸¦ Á¦°øÇϴµ¥ ´ÙÀ½¿¡ µµÇ¥·Î °£·«ÇÏ°Ô Á¤¸®ÇØ º¸¾Ò´Ù.

 

Á¤¼öÇü

Complex Ŭ·¡½º

C++ÀÇ °ü·Ã ¹®¹ý

int i;

Complex C;

Ŭ·¡½ºÀÇ À̸§ÀÌ Å¸ÀÔ°ú °°Àº ÀÚ°ÝÀ» °¡Áø´Ù.

int i=3;

Complex C(1.0, 2.0);

»ý¼ºÀÚ, ¼±¾ð°ú µ¿½Ã¿¡ ÃʱâÈ­ÇÒ ¼ö ÀÖ´Ù.

int i=j;

Complex D=C;

º¹»ç »ý¼ºÀÚ. °°Àº ŸÀÔÀÇ ´Ù¸¥ °´Ã¼·ÎºÎÅÍ »ý¼ºµÈ´Ù.

i=j;

D=C;

´ëÀÔ ¿¬»êÀÚ

i+j;

D+C;

¿¬»êÀÚ ¿À¹ö·Îµù

i=3.14

Complex C(1.2);

º¯È¯ »ý¼ºÀÚ, º¯È¯ ÇÔ¼ö

3+i

1.0+C;

Àü¿ª ¿¬»êÀÚ ÇÔ¼ö¿Í ÇÁ·»µå

 

ÀÌ·± ¿©·¯ °¡Áö ¹®¹ý¿¡ ÀÇÇØ º¹¼Ò¼ö Ŭ·¡½ºÀÎ Complex°¡ int¿Í ¿ÏÀüÈ÷ ¶È°°Àº ÀÚ°ÝÀ» °¡Áú ¼ö ÀÖ´Ù. ¼¼ºÎÀûÀÎ ¹®¹ýÀº Â÷Â÷ ±¸°æÇÏ°Ô µÉ °ÍÀÌ°í ¿ì¼±Àº Á÷°üÀûÀ¸·Î ÀÌÇØÇϱ⠽¬¿î Ŭ·¡½º¸¦ ¿¹·Î µé¾î º¸ÀÚ.

 

class Complex

{

private:

     double real;

     double image;

 

public:

     ¸â¹ö ÇÔ¼öµé;

};

 

Complex Ŭ·¡½º´Â Á¦°öÇßÀ» ¶§ À½¼ö°¡ µÇ´Â º¹¼Ò¼ö¸¦ Ç¥ÇöÇÑ´Ù. º¹¼Ò¼ö´Â ÀÚ¿¬¿¡ ½ÇÁ¦·Î Á¸ÀçÇÏÁö ¾Ê´Â Çã¼öÀÌÁö¸¸ °úÇÐ °è»ê¿¡´Â Áß°£ °úÁ¤ °è»êÀ» À§ÇØ ²À ÇÊ¿äÇÏ´Ù. ¼öÇп¡¼­ º¹¼Ò¼ö´Â º¸Åë a+bi·Î Ç¥ÇöµÇ´Âµ¥ a¸¦ ½Ç¼öºÎ¶ó Çϰí bi¸¦ Çã¼öºÎ¶ó ÇÑ´Ù. Complex Ŭ·¡½º´Â ½Ç¼öºÎÀÇ °ªÀ» °¡Áö´Â real°ú Çã¼öºÎÀÇ °ªÀ» °¡Áö´Â image¸¦ ¸â¹ö·Î °¡ÁüÀ¸·Î½á ½Ç¼¼°èÀÇ º¹¼Ò¼ö¸¦ ¸ðµ¨¸µÇϸç ÀÌ µÎ ¸â¹öÀÇ Á¶ÇÕÀ¸·Î ÇÊ¿äÇÑ ¸ðµç º¹¼Ò¼ö¸¦ ´Ù Ç¥ÇöÇÑ´Ù. Complex Ŭ·¡½ºÀÇ ¸â¹ö ÇÔ¼öµéÀº ÃʱâÈ­, ´ëÀÔ, ¿¬»ê, Ãâ·Â µîÀÇ µ¿ÀÛÀ» ÇÒ °ÍÀÌ´Ù.

C/C++Àº ¾ð¾î Â÷¿ø¿¡¼­ º¹¼Ò¼ö ŸÀÔÀ» Áö¿øÇÏÁö ¾ÊÁö¸¸ ÇÊ¿äÇÏ´Ù¸é ÀÌ·± ŸÀÔÀ» Ŭ·¡½º·Î ¸¸µé¾î »ç¿ëÇÒ ¼ö ÀÖ´Ù. Complex Ŭ·¡½º´Â int, double°ú ¸¶Âù°¡Áö·Î º¯¼ö¸¦ »ý¼ºÇÒ ¼ö ÀÖÀ¸¸ç ÇÔ¼öÀÇ Àμö³ª ¸®ÅϰªÀ¸·Îµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ¿¬»êÀÚ ÇÔ¼ö¸¦ ÀÛ¼ºÇÏ¸é º¹¼Ò¼ö³¢¸® ´õÇÏ°í »©°í °öÇÏ´Â ¿¬»êµµ °¡´ÉÇÏ´Ù. int, doubleÀÌ ¿Ã ¼ö ÀÖ´Â À§Ä¡À̸é Complexµµ ¾ðÁ¦³ª ¿Ã ¼ö ÀÖÀ¸¸ç ±×·¡¼­ Ŭ·¡½º´Â ¸ðµç ¸é¿¡¼­ ŸÀÔÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù.

C/C++ÀÌ Å¬·¡½º¸¦ ¿ÏÀüÇÑ Å¸ÀÔÀ¸·Î ÀÎÁ¤ÇϹǷΠŬ·¡½º·ÎºÎÅÍ À¯µµÇü ŸÀÔÀ» ¸¸µé ¼öµµ ÀÖ´Ù. TÇüÀÌ ÀÖÀ» ¶§ TÇü Æ÷ÀÎÅÍ¿Í TÇü ¹è¿­ÀÌ Ç×»ó °¡´ÉÇϹǷΠŬ·¡½ºÀÇ ¹è¿­À̳ª Ŭ·¡½ºÇü º¯¼ö¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͵µ ¸¸µé ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â Position Ŭ·¡½ºÀÇ ¹è¿­À» ¼±¾ðÇϰí PositionÇü º¯¼ö¿¡ ´ëÇÑ Æ÷ÀÎÅÍ·Î ÀÌ ¹è¿­À» °ü¸®ÇÑ´Ù.

 

¿¹ Á¦ : PositionClass

#include <Turboc.h>

 

class Position

{

private:

     int x;

     int y;

     char ch;

 

public:

     void InitRand() {

          x=random(80);

          y=random(24);

          ch=random('Z'-'A'+1)+'A';

     }

     void OutPosition() {

          gotoxy(x, y);

          putch(ch);

     }

     void ErasePosition() {

          gotoxy(x, y);

          putch(' ');

     }

};

 

void main()

{

     Position arPos[50];

     Position *pPos;

     int i;

 

     randomize();

     for (i=0;i<sizeof(arPos)/sizeof(arPos[0]);i++) {

          arPos[i].InitRand();

          arPos[i].OutPosition();

          delay(50);

     }

 

     delay(1000);

     pPos=arPos;

     for (i=0;i<sizeof(arPos)/sizeof(arPos[0]);i++) {

          pPos->ErasePosition();

          pPos++;

          delay(50);

     }

}

 

±âÁ¸ÀÇ Position Ŭ·¡½º¿¡ µÎ °³ÀÇ ¸â¹ö ÇÔ¼ö°¡ Ãß°¡µÇ¾ú´Ù. InitRand ÇÔ¼ö´Â Ãâ·ÂÇÒ À§Ä¡¿Í ¹®ÀÚ¸¦ ³­¼ö·Î ÃʱâÈ­Çϰí ErasePosition ÇÔ¼ö´Â ÀÌ¹Ì Ãâ·ÂµÇ¾î ÀÖ´Â ¹®ÀÚ¸¦ »èÁ¦ÇÑ´Ù. Position Ŭ·¡½º¿¡ ³­¼ö·Î ÀÚ½ÅÀ» ÃʱâÈ­ÇÏ´Â ±â´É°ú ÀÌ¹Ì Ãâ·ÂÇÑ ¹®ÀÚ¸¦ Áö¿ì´Â ±â´ÉÀÌ Ãß°¡µÇ¾ú´Ù. main ÇÔ¼öÀÇ Äڵ带 ºÐ¼®ÇØ º¸ÀÚ. arPos´Â PositionÇüÀÇ º¯¼ö 50°³¸¦ ´ãÀ» ¼ö Àִ Ŭ·¡½ºÀÇ ¹è¿­·Î ¼±¾ðµÇ¾ú´Ù. arPos°¡ ¸Þ¸ð¸®¿¡ ±¸ÇöµÈ ¸ð¾çÀ» ±×·Á º¸ÀÚ¸é ´ÙÀ½°ú °°´Ù.

°³³äÀûÀ¸·Î ±¸Á¶Ã¼ ¹è¿­°ú µ¿ÀÏÇÏ´Ù. ù ¹øÂ° i·çÇÁ´Â 0~49±îÁö ¹Ýº¹Çϸ鼭 arPos[i]¸¦ ³­¼ö·Î ÃʱâÈ­Çϰí ÃʱâÈ­µÈ arPos[i]ÀÇ OutPosition ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ³­¼ö À§Ä¡¿¡ ¹®ÀÚ¸¦ Ãâ·ÂÇÑ´Ù. ¿©±â±îÁö ½ÇÇàÇϸé È­¸é¿¡ 50°³ÀÇ ¹®ÀÚµéÀÌ ¹«ÀÛÀ§ À§Ä¡¿¡ Ãâ·ÂµÇ¾î ÀÖÀ» °ÍÀÌ´Ù.

µÎ ¹øÂ° i·çÇÁ´Â ErasePosition ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÀÌ¹Ì Ãâ·ÂµÈ ¹®ÀÚµéÀ» »èÁ¦Çϴµ¥ À̶§´Â PositionÇüÀÇ Æ÷ÀÎÅÍ º¯¼ö pPos¸¦ »ç¿ëÇß´Ù. pPos=arPos ´ëÀÔ¹®Àº pPos¿¡ arPos ¹è¿­ÀÇ ¼±µÎ ¹øÁöÀÎ &arPos[0]¸¦ ´ëÀÔÇϸç pPos++Àº pPosÀÇ ¹øÁö¸¦ sizeof(Position)¸¸Å­ Áõ°¡½ÃÄÑ arPos ¹è¿­ÀÇ ´ÙÀ½ ¿ä¼Ò·Î À̵¿ÇÑ´Ù. arPos[0]~arPos[49]±îÁö ·çÇÁ¸¦ µ¹¸é¼­ ErasePosition ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇßÀ¸¹Ç·Î Ãâ·ÂµÈ ¹®ÀÚµéÀÌ Â÷·Ê´ë·Î »ç¶óÁø´Ù.

º¸´Ù½ÃÇÇ arPos ¹è¿­À̳ª pPos Æ÷ÀÎÅÍ º¯¼ö°¡ µ¿ÀÛÇÏ´Â ¹æ½ÄÀº intÇü ¹è¿­À̳ª int *Çü º¯¼ö°¡ µ¿ÀÛÇÏ´Â ¹æ½Ä°ú ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. ÇÊ¿äÇÏ´Ù¸é PositionÇü Æ÷ÀÎÅÍ ¹è¿­À̳ª PositionÇü ÀÌÂ÷ ¹è¿­, PositionÇü ÀÌÁß Æ÷ÀÎÅÍ µîµµ ¸¸µé ¼ö ÀÖÀ¸¸ç À̶§ ±âÁ¸ÀÇ C ¹®¹ýÀÌ Å¬·¡½º¿¡ ´ëÇØ¼­µµ ÀϰüµÇ°Ô Àû¿ëµÈ´Ù. Ŭ·¡½º°¡ ¿ÏÀüÇÑ Å¸ÀÔÀ̱⠶§¹®ÀÌ´Ù.

Ŭ·¡½ºÀÇ À̸§Àº ÀÏÁ¾ÀÇ ¸íĪÀ̱⠶§¹®¿¡ ¸ðµ¨¸µÇÑ ´ë»óÀ» Àß Ç¥ÇöÇÒ ¼ö ÀÖ´Â À̸§À» ÀÚÀ¯·Ó°Ô ºÙÀÏ ¼ö ÀÖ´Ù. À̶§ ÀÌ ¸íĪÀÌ Å¬·¡½ºÀÓÀ» ¸íÈ®ÇÏ°Ô ³ªÅ¸³»±â À§ÇØ ÀÏÁ¾ÀÇ Á¢µÎ¾î¸¦ ºÙÀÌ´Â °ÍÀÌ °üÇàÀÌ´Ù. ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®´Â CString, CObject, CArrayó·³ Ŭ·¡½º À̸§¾Õ¿¡ C¸¦ ºÙÀ̴µ¥ ¿©±â¼­ C´Â classÀÇ Ã¹ ±ÛÀÚÀÌ´Ù. º¼·£µå´Â ÁÖ·Î T¸¦ ºÙ¿© TWindow, TPen°ú °°ÀÌ Å¬·¡½ºÀÇ À̸§À» ÀÛ¼ºÇϴµ¥ À̶§ T´Â TypeÀÇ Ã¹ ±ÛÀÚÀ̸ç Ŭ·¡½º°¡ ŸÀÔÀ̶ó°í º¸´Â °üÁ¡À» Àß µå·¯³»°í ÀÖ´Ù. ÀÌ·± Ŭ·¡½º À̸§ ÀÛ¼º¹ýÀº ¾îµð±îÁö³ª °üÇàÀÏ »ÓÀ̹ǷΠ²À Áöų ÇÊ¿ä´Â ¾ø´Ù.