¾Õ µÎ Àý¿¡¼ ºñ·Ï ´ëÃæÀ̱â´Â ÇÏÁö¸¸ OOP °³·Ð¿¡ ´ëÇØ ¼Ò°³Çß°í C¾ð¾î¿¡ ´ëÇÑ C++ÀÇ °³¼±Á¡°ú Ãß°¡µÈ ±â´Éµé¿¡ ´ëÇØ¼ ¿¬±¸ÇØ º¸¾Ò´Ù. À̸¥¹Ù Áغñ ¿îµ¿ÀÌ ³¡³ ¼ÀÀε¥ ÀÌ ÀýºÎÅÍ º»°ÝÀûÀ¸·Î C++°ú °´Ã¼ ÁöÇâ ÇÁ·Î±×·¡¹Ö¿¡ ´ëÇØ ¿¬±¸ÇØ º»´Ù. C++ÀÇ ´ëÇ¥ÀûÀÎ °£ÆÇ ½ºÅ¸ Ŭ·¡½ºÀÇ Á¤ÀÇ¿¡ ´ëÇØ ¿¬±¸ÇØ º¸´Â °ÍÀ¸·Î Â¥¸´ÇÑ OOP ¿©ÇàÀ» ½ÃÀÛÇÏÀÚ.
±¸Á¶Ã¼´Â ŸÀÔÀÌ ¼·Î ´Ù¸¥ ÀÌÇü º¯¼öÀÇ ÁýÇÕÀÌ´Ù. ȸé»óÀÇ ÇÑ ÁÂÇ¥¿Í ±× À§Ä¡¿¡ Ãâ·ÂµÉ ¹®ÀÚ¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°Àº ±¸Á¶Ã¼¸¦ ¼±¾ðÇØ¾ß ÇÑ´Ù. ÁÂÇ¥°ª (x, y)´Â Á¤¼öÇüÀÌ°í ¹®ÀÚ ch´Â ¹®ÀÚÇüÀ̹ǷΠ¼·Î ŸÀÔÀÌ ´Ù¸£°í ±×·¡¼ ÀÌÇü ŸÀÔ º¯¼öÀÇ ÁýÇÕÀÎ ±¸Á¶Ã¼·Î ÀÌ º¯¼öµéÀ» ¹¾î Á¤ÀÇÇÑ´Ù.
struct Position
{
int x;
int y;
char ch;
};
ŸÀÔÀÇ À̸§Àº PositionÀ̰í ÀÌ ±¸Á¶Ã¼ ¾È¿¡ x, y, ch ¸â¹ö°¡ Æ÷ÇԵǾî ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÌ ±¸Á¶Ã¼¸¦ »ç¿ëÇÏ¿© ȸ鿡 ÇÑ ¹®ÀÚ¸¦ Ãâ·ÂÇÑ´Ù. ´«À¸·Î Á× Àб⸸ ÇØµµ ÀÌÇØµÉ Á¤µµ·Î ½±´Ù.
|
¿¹ Á¦ : Pos1 |
#include <Turboc.h>
struct Position
{
int x;
int y;
char ch;
};
void OutPosition(Position Pos)
{
gotoxy(Pos.x, Pos.y);
putch(Pos.ch);
}
void main()
{
Position Here;
Here.x=30;
Here.y=10;
Here.ch='A';
OutPosition(Here);
}
½ÇÇàÇØ º¸¸é ȸéÀÇ (30,10) À§Ä¡¿¡ ¹®ÀÚ 'A'°¡ Ãâ·ÂµÉ °ÍÀÌ´Ù. ¹®ÀÚ¸¦ Ãâ·ÂÇÏ´Â ÀÛ¾÷Àº OutPosition ÇÔ¼ö°¡ ó¸®Çϴµ¥ Àμö·Î Àü´Þ¹ÞÀº ±¸Á¶Ã¼ PosÀÇ Á¤º¸´ë·Î ÁöÁ¤ÇÑ À§Ä¡¿¡ ¹®ÀÚ¸¦ Ãâ·ÂÇß´Ù. main ÇÔ¼ö´Â PositionÇüÀÇ ±¸Á¶Ã¼ º¯¼ö Here¸¦ ¼±¾ðÇϰí ÀÌ ±¸Á¶Ã¼ÀÇ ¸â¹ö¿¡ °¢°¢ 30, 10, 'A'¸¦ ´ëÀÔÇßÀ¸¸ç OutPosition ÇÔ¼ö¸¦ È£ÃâÇÏ¿© (30,10)À§Ä¡¿¡ 'A'¸¦ Ãâ·ÂÇß´Ù. C¼öÁØ¿¡¼ ¾ÆÁÖ ½±°Ô ÀÌÇØµÇ´Â °£´ÜÇÑ ¿¹Á¦ÀÌ´Ù.

ÀÌ ¿¹Á¦¿¡¼ Position ±¸Á¶Ã¼¿Í OutPosition ÇÔ¼ö´Â »óÈ£ ÀÇÁ¸ÀûÀÎ °ü°è¿¡ ÀÖ´Ù. Position ±¸Á¶Ã¼°¡ ¾øÀ¸¸é OutPositionÀº Àμö¸¦ ¹Þ¾ÆµéÀÏ ¼ö ¾øÀ¸¹Ç·Î ÄÄÆÄÀϵÇÁö ¾ÊÀ¸¸ç µ¿ÀÛÇÒ ¼öµµ ¾ø´Ù. ¶ÇÇÑ OutPosition ÇÔ¼ö°¡ ¾øÀ¸¸é Position ±¸Á¶Ã¼´Â ȸ鿡 Ãâ·ÂµÇÁö ¸øÇϹǷΠÀÚ½ÅÀÇ Á¸À縦 ³ªÅ¸³¾ ¹æ¹ýÀÌ ¾ø´Ù. PositionÀº Á¤º¸¸¦ °¡Áö°í OutPositionÀº µ¿ÀÛÀ» Á¤ÀÇÇϴµ¥ Á¤º¸¸¦ º¸¿©ÁÖ±â À§Çؼ´Â µ¿ÀÛÀÌ ÇÊ¿äÇÏ°í µ¿ÀÛÀÌ ¼öÇàµÇ·Á¸é Á¤º¸°¡ ÇÊ¿äÇÑ °ÍÀÌ´Ù.

¸¸¾à ÀÌ ±¸Á¶Ã¼¸¦ ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼ Àç»ç¿ëÇϰíÀÚ ÇÑ´Ù¸é ±¸Á¶Ã¼¿Í ÇÔ¼ö¸¦ °°ÀÌ °¡Áö°í °¡¾ß ÇÏ¸ç µÑ Áß Çϳª¸¸ °¡Áö°í °¡¸é ¾Æ¹« ¦¿¡µµ ¾µ¸ð°¡ ¾ø´Ù. ÀÌ·¸°Ô ¹ÐÁ¢ÇÑ ±¸Á¶Ã¼¿Í ÇÔ¼ö´Â ÇÑ ½ÖÀ¸·Î º¼ ¼ö Àִµ¥ C++Àº ¿¬°üµÈ ÄÚµå¿Í µ¥ÀÌÅ͸¦ ÇϳªÀÇ ¹üÀ§¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ÀÌ °³³äÀÌ ¹Ù·Î ĸ½¶ÈÀÌ´Ù. ±¸Á¶Ã¼°¡ ´Ù¾çÇÑ Å¸ÀÔÀÇ ¸â¹ö º¯¼ö¸¦ Æ÷ÇÔÇϵíÀÌ ÇÔ¼öµµ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº Position ±¸Á¶Ã¼¿Í OutPosition ÇÔ¼ö¸¦ Çϳª·Î ÇÕÄ£ °ÍÀÌ´Ù.
|
¿¹ Á¦ : Pos2 |
#include <Turboc.h>
struct Position
{
int x;
int y;
char ch;
void OutPosition() {
gotoxy(x, y);
putch(ch);
}
};
void main()
{
Position Here;
Here.x=30;
Here.y=10;
Here.ch='A';
Here.OutPosition();
}
½ÇÇàÇØ º¸¸é °á°ú´Â ¾ÕÀÇ ¿¹Á¦¿Í µ¿ÀÏÇÏ´Ù. ¼Ò½ºÀÇ ±¸Á¶´Â ´Ù¼Ò º¯°æµÇ¾ú´Âµ¥ OutPosition ÇÔ¼ö°¡ ±¸Á¶Ã¼ ¼±¾ð ¾È¿¡ Æ÷ÇԵǾú´Ù. ±¸Á¶Ã¼¿Í °ü·ÃµÈ ÇÔ¼ö¸¦ µû·Î Á¤ÀÇÇÒ ÇÊ¿ä¾øÀÌ ¾Æ¿¹ ±¸Á¶Ã¼¿¡ Æ÷ÇÔ½ÃÄÑ ¹ö¸° °ÍÀÌ´Ù. ÀÌ·¸°Ô ±¸Á¶Ã¼¿¡ Æ÷ÇÔµÈ ÇÔ¼ö¸¦ ¸â¹ö ÇÔ¼ö¶ó°í ºÎ¸£¸ç ±¸Á¶Ã¼¿¡ Æ÷ÇÔµÈ º¯¼ö´Â ¸â¹ö º¯¼ö¶ó°í ºÎ¸¥´Ù.
Áï, C++¿¡¼ ±¸Á¶Ã¼´Â ¸â¹ö º¯¼ö¿Í ¸â¹ö ÇÔ¼ö·Î ±¸¼ºµÈ´Ù. CÀÇ ±¸Á¶Ã¼´Â ÀÌÇü º¯¼öÀÇ ÁýÇÕ, Áï ŸÀÔÀÌ ´Ù¸¥ º¯¼öµéÀÇ ÁýÇÕÀÌ´Ù. º¯¼ö¸¸ Æ÷Ç﵃ ¼ö ÀÖ¾úÀ¸¹Ç·Î ´Ü¼øÈ÷ ¸â¹ö¶ó´Â ¿ë¾î¸¦ »ç¿ëÇßÁö¸¸ C++ÀÇ ±¸Á¶Ã¼¿¡´Â ÇÔ¼öµµ °°ÀÌ Æ÷Ç﵃ ¼ö ÀÖÀ¸¹Ç·Î µÎ Á¾·ùÀÇ ¸â¹ö¸¦ ±¸ºÐÇÒ ¼ö ÀÖ´Â º°µµÀÇ À̸§ÀÌ ÇÊ¿äÇØÁø °ÍÀÌ´Ù. ´Ù¸¥ ¾ð¾î¿¡¼´Â ¸â¹ö º¯¼ö¸¦ Çʵå(Field), ¸â¹ö ÇÔ¼ö¸¦ ¸Þ¼Òµå(Method)¶ó°í ºÎ¸£±âµµ Çϴµ¥ °°Àº ¶æÀÌ´Ù.

OutPosition ÇÔ¼ö°¡ ±¸Á¶Ã¼¿¡ Æ÷ÇÔµÊÀ¸·Î½á ¼Ò½ºÀÇ ´Ù¸¥ ºÎºÐµéµµ ¸¹ÀÌ ´Þ¶óÁ³´Ù. ¾î¶»°Ô ´Þ¶óÁ³´ÂÁö Á¤¸®ÇØ º¸ÀÚ.
¨ç OutPosition ÇÔ¼ö°¡ Àμö¸¦ ¹Þ¾ÆµéÀÏ Çʿ䰡 ¾ø´Ù. ÀÏ¹Ý ÇÔ¼öÀÏ ¶§´Â ¾î¶² ±¸Á¶Ã¼ÀÇ Á¤º¸¸¦ »ç¿ëÇÒ °ÍÀÎÁö¸¦ Àμö·Î Àü´Þ¹Þ¾Æ¾ß ÇßÁö¸¸ ±¸Á¶Ã¼¿¡ ¼Ò¼ÓµÇ¾ú±â ¶§¹®¿¡ ¼Ò¼ÓµÈ ±¸Á¶Ã¼ÀÇ Á¤º¸¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
¨è OutPosition ÇÔ¼ö ³»ºÎ¿¡¼ x, y ¸â¹ö º¯¼ö¸¦ ÂüÁ¶ÇÒ ¶§ ¼Ò¼Ó ±¸Á¶Ã¼¸¦ ¹àÈú Çʿ䰡 ¾ø¾îÁ³´Ù. ±¸Á¶Ã¼ ¹Û¿¡ ÀÖÀ» ¶§´Â ¾î¶² ±¸Á¶Ã¼¿¡ ¼ÓÇÑ ¸â¹ö º¯¼öÀÎÁö¸¦ ¹àÇô¾ß ÇÏÁö¸¸ ¸â¹ö ÇÔ¼ö´Â º°µµÀÇ ÁöÁ¤¾øÀÌ ÀÚ½ÅÀÌ ¼ÓÇØ ÀÖ´Â ±¸Á¶Ã¼ÀÇ ¸â¹ö º¯¼ö¸¦ À̸§¸¸À¸·Î ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù.
¨é main¿¡¼ OutPosition ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ÇÔ¼ö°¡ ¼Ò¼ÓµÈ ±¸Á¶Ã¼ º¯¼ö Here¸¦ ¾Õ¿¡ Àû¾îÁÖ¾ú´Ù. OutPosition ÇÔ¼ö´Â µ¶¸³µÈ ÇÔ¼ö°¡ ¾Æ´Ï¶ó ±¸Á¶Ã¼¿¡ ¼ÓÇÑ ¸â¹öÀ̹ǷΠ¾î¶² ±¸Á¶Ã¼ÀÇ Á¤º¸¸¦ ´ë»óÀ¸·Î µ¿ÀÛÇÒ °ÍÀÎÁö¸¦ ¹àÇô¾ß ÇÑ´Ù. ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀº ¸â¹ö º¯¼ö¸¦ ÂüÁ¶ÇÏ´Â °Í°ú µ¿ÀÏÇÏ´Ù. Á¡ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ±¸Á¶Ã¼.ÇÔ¼ö() ½ÄÀ¸·Î È£ÃâÇÏ¸ç ±¸Á¶Ã¼ Æ÷ÀÎÅͶó¸é ±¸Á¶Ã¼->ÇÔ¼ö() ½ÄÀ¸·Î È£ÃâÇÑ´Ù.
±¸Á¶Ã¼°¡ ¸â¹ö ÇÔ¼ö¸¦ Æ÷ÇÔÇÏ¸é ½º½º·Î µ¿ÀÛÇÒ ¼ö ÀÖ´Â µ¶¸³¼ºÀÌ ºÎ¿©µÈ´Ù. ¸â¹ö º¯¼ö·Î Á¤º¸¸¦ ±â¾ïÇÒ ¼ö ÀÖ°í ÀÌ Á¤º¸µéÀ» ¹ÙÅÁÀ¸·Î Á÷Á¢ µ¿ÀÛµµ ÇÒ ¼ö ÀÖ´Ù. µ¶¸³¼ºÀÌ »ý±â¸é Àç»ç¿ë¼ºÀÌ È®º¸µÈ´Ù. ³»ºÎ¿¡ Á¤º¸¿Í ÇÔ¼ö¸¦ ¸ðµÎ Æ÷ÇÔÇϰí ÀÖÀ¸¹Ç·Î ÀÌ ±¸Á¶Ã¼¸¸ ´Ù¸¥ ÇÁ·ÎÁ§Æ®·Î °¡Á®°¡¸é ½±°Ô Àç»ç¿ëÇÒ ¼ö ÀÖ´Ù.
Pos2 ¿¹Á¦°¡ º¸¿©ÁÖ´Â ±¸Á¶Ã¼¿Í ÇÔ¼öÀÇ ÅëÇÕ, À̰ÍÀÌ ¹Ù·Î OOP ĸ½¶ÈÀÇ ±âº»ÀûÀÎ °³³äÀÌ´Ù. º¯¼öµç ÇÔ¼öµç ³í¸®ÀûÀ¸·Î °ü·ÃµÈ °ÍÀ» ÇÑ °÷¿¡ ¸ð¾Æ ¹¾î ³õÀ½À¸·Î½á ±¸Á¶Ã¼°¡ ÇÁ·Î±×·¥ÀÇ ºÎǰ ¿ªÇÒÀ» ÇÒ ¼ö ÀÖ°Ô µÈ °ÍÀÌ´Ù.