[C++]°­ÁÂ(5)<--¹®¹ýÀÇ ¾ö°Ý¼º



´Ù. µðÆúÆ® ÆĶó¹ÌÅÍ

µðÆúÆ®¶õ ´Ù ¾Ë´Ù½ÃÇÇ ³»Á¤Ä¡, ¶Ç´Â ±âÁ¤Ä¡¶ó´Â ¶æÀ¸·Î ¾Æ¹«°Íµµ ÁöÁ¤ÇÏÁö ¾Ê
À» °æ¿ì¿¡ ÃëÇÏ´Â °ªÀ» ¸»ÇÑ´Ù. ¿¹¸¦ µé¾î DOSÀÇ °¡Àå °£´ÜÇÑ ¸í·ÉÀÎ dir ¸í·É
µÚ¿¡´Â "ÇöÀç µð·ºÅ丮ÀÇ ¸ðµç ÆÄÀÏ" À̶ó´Â µðÆúÆ®°¡ Àû¿ëÀÌ µÇ°í ÀÖ´Ù. µðÆú
Æ®¶õ ¾îµð±îÁö³ª µû·Î ÁöÁ¤ÇÏÁö ¾ÊÀ» °æ¿ìÀÇ °ªÀ̹ǷΠµû·Î °ªÀ» ÁöÁ¤ÇÏ¸é µð
ÆúÆ® ´ë½Å ÁöÁ¤ÇÑ °ªÀÌ ¾²¿©Áö°Ô µÈ´Ù.
dir a:*.txt¶õ ¸í·ÉÀº "a µå¶óÀ̺êÀÇ, È®ÀåÀÚ°¡ txtÀÎ ¸ðµç ÆÄÀÏ"À» ÁöÁ¤ÇØÁÖ
¾ú±â¶§¹®¿¡ µðÆúÆ®°¡ À̶§´Â ¹«½ÃµÈ´Ù. C¿¡¼­ ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§´Â ÇÔ¼ö È£Ãâ½Ã
¿¡ ³Ñ°Ü ÁÖ±â·Î ÇÑ ÀμöÀÇ °³¼ö¿¡ ¸Â°Ô Àμö¸¦ ³Ñ°ÜÁÖ¾î¾ß Çϸç Àμö°¡ ¸ðÀÚ¶ó
°Å³ª ³²¾Æ¼­´Â ¾ÈµÈ´Ù. ±×·¯³ª C++¿¡¼­´Â Àμö¿¡µµ µðÆúÆ®°ªÀ» ÁöÁ¤ÇÏ¿© »ý·«
½ÃÀÇ °ªÀ» ¹Ì¸®Á¤ÇØÁÙ ¼ö ÀÖµµ·Ï µÇ¾îÀÖ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.

#include <stdio.h>
#include <conio.h>

void outchar( int x, int y, char c = 'S', int num = 3);

main()
{
 clrscr();
 outchar( 10, 10, 'D', 5);
 outchar( 20, 20, 'T');
 outchar( 10, 20);
}

void outchar( int x, int y, char c, int num)
{
 int i;
 for ( i = 0; i < num; i ++)
 {
     gotoxy( x + i, y);
     putch( c);
 }
}

3Çà¿¡ Á¤ÀǵǾî ÀÖ´Â ÇÔ¼öÀÇ ¿øÇü Á¤Àǹ®¿¡¼­ Àμö ¸®½ºÆ®¸¦ º¸¸é ¼¼¹ø°, ³×
¹ø° Àμö µÚ¿¡ µîÈ£¿Í ÇÔ²² µðÆúÆ® °ªÀÌ ÁöÁ¤µÇ¾î ÀÖ´Ù. int num = 3À̶õ Á¤
¼öÇü Àμö¸¦ ¹Þ¾ÆµéÀÌµÇ ¸¸¾à ÇÔ¼ö È£Ãâ¹®¿¡¼­ Àμö°¡ Àü´ÞµÇÁö ¾ÊÀ» °æ¿ì´Â
ÀÌ °ªÀ¸·Î 3À» ÃëÇÑ´Ù´Â ¶æÀÌ´Ù.
¿©±â¼­ Á¤ÀÇµÈ ÇÔ¼ö outcharÀº ( x, y) À§Ä¡¿¡ ¹®ÀÚ c¸¦ num°³ ¸¸Å­ Ãâ·Â½ÃÅ°
´Â ÇÔ¼öÀÌ´Ù.
C¿¡¼­¶ó¸é ´ç¿¬È÷ À§Ä¡¿Í Ãâ·Â½Ãų ¹®ÀÚ¿Í °³¼ö¸¦ ¹àÇôÁÖ¾î¾ß ÇÏÁö¸¸ ¿©±â¼­
´Â µðÆúÆ® Àμö°¡ ÁöÁ¤µÇ¾î Àֱ⠶§¹®¿¡ µðÆúÆ®·Î ÁöÁ¤µÈ Àμö¿¡ ÇÑÇØ »ý·«ÀÌ
°¡´ÉÇÏ¸ç »ý·«Çҽô µðÆúÆ® °ªÀÌ Àû¿ëµÈ´Ù. outchar¸¦ ¼¼¹ø È£ÃâÇÏ¿´´Âµ¥ °¢
È£Ãâ °á°ú´Â ´ÙÀ½°ú °°´Ù.

* outchar( 10, 10, 'D', 5);
( 10, 10)ÀÇ À§Ä¡¿¡ ¹®ÀÚ 'D'¸¦ 5°³ ¿¬¼Ó Ãâ·ÂÇÑ´Ù. À̶§ µðÆúÆ®°ªÀº ¹«½ÃµÈ´Ù.
* outchar( 20, 20, 'T');
Àμö°¡ ¼¼°³¹Û¿¡ ¾ø´Ù. ¸Ç³¡¿¡ »ý·«µÈ numÀº µðÆúÆ®·Î °£ÁֵǾî 3ÀÌ µÈ´Ù.
outchar( 20, 20, 'T', 3)°ú ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù.
* outchar( 10, 20);
Àμö°¡ µÎ °³¹Û¿¡ ¾ø´Ù. ¹®ÀÚ´Â µðÆúÆ®·Î ÁöÁ¤µÈ 'S'°¡ µÇ°í °³¼ö´Â 3ÀÌ µÈ´Ù.
outchar( 10, 20, 'S', 3)°ú ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù.

µðÆúÆ®°ªÀÇ ÁöÁ¤Àº ÇÔ¼öÀÇ ¿øÇü¿¡¼­ Àμö ´ÙÀ½¿¡ µîÈ£¿Í ÇÔ²² ¿øÇÏ´Â µðÆúÆ®
°ªÀ» ½áÁÖ¸é µÈ´Ù. À̶§ ÀμöÀÇ À̸§Àº ²À ¹àÈ÷Áö ¾Ê¾Æµµ µÈ´Ù.

void outchar( int, int, char = 'S', int = 3);

°ú °°ÀÌ Çصµ Á» ¾î»öÇϱä ÇÏÁö¸¸ »ó°ü¾ø´Ù. µðÆúÆ®°ªÀÌ ÁöÁ¤µÈ Àμö´Â ¾ðÁ¦µç
Áö µÚ¿¡¼­ºÎÅÍ Â÷·Ê´ë·Î »ý·«ÀÌ °¡´ÉÇÏ´Ù. Áß°£ÀÇ Çϳª¸¸ ½ï »©³õ´Â °ÍÀº ¿ë³³
µÇÁö ¾Ê´Â´Ù.
outchar( 5, 5, , 6)ÇÏ¸é ¹®ÀÚ´Â µðÆúÆ®ÀÎ 'S'°¡ µÉ °Í °°Áö¸¸ ÀÌ·± ¹®±¸´Â
Expression syntax ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù.

¶ó. inline ÇÔ¼ö

inlineÀ̶õ ¸»Àº ±×¶§ ±×¶§ Áï½Ã ó¸®ÇÑ´Ù´Â ¶æÀε¥ ÇÔ¼ö È£Ã⠺κÐÀ» ¾Æ¿¹
ÇÔ¼ö ±× ÀÚüÀÇ ÄÚµå·Î ´ëü½ÃÄÑ ¹ö¸®´Â °ÍÀ» ¸»ÇÑ´Ù. ÀϹÝÀûÀÎ ÇÔ¼ö´Â ÇÔ¼ö°¡
È£ÃâµÇ¸é ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖ´Â ºÎºÐÀ¸·Î °¡¼­ ÇÔ¼ö ºÎºÐÀ» ½ÇÇàÇÏ°í ´Ù½Ã µ¹
¾Æ¿À´Â ¹æ½ÄÀ¸·Î µÇ¾î ÀÖ´Ù.
µû¶ó¼­ ÇÔ¼ö È£ÃâÀÌ ¸î¹øÀÌ°Ç °£¿¡ ÇÁ·Î±×·¥¿¡¼­ ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖ´Â ºÎºÐ
Àº ´Ü ÇÑ°÷¹Û¿¡ ¾øÀ¸¸ç È£Ãâ½Ã¸¶´Ù È£Ãâ¿ø¿¡¼­ ÇÔ¼ö·Î Á¦¾î±ÇÀ» ³Ñ°ÜÁÖ°Ô µÈ´Ù.
¹Ý¸é inline ÇÔ¼ö´Â ÇÔ¼ö°¡ È£ÃâµÇ´Â ºÎºÐ¿¡ ¾Æ¿¹ ÇÔ¼ö ÄÚµå ÀÚü¸¦ Áý¾î³Ö¾î
¹ö¸°´Ù. µû¶ó¼­ ÇÔ¼ö¸¦ È£ÃâÇÑ È½¼ö ¸¸Å­ ÇÔ¼ö Á¤ÀÇ ºÎºÐÀÌ ¹Ýº¹µÇ¾î ³ªÅ¸³ª°Ô
µÇ¸ç Á¦¾î±ÇÀÌ ³Ñ°ÜÁö´Â ÀÏÀº ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
ÀÌ·± inline ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯´Â Á¦¾î±ÇÀÇ À̵¿ÀÌ ¹ß»ýÇÏÁö ¾ÊÀ¸¹Ç·Î ¼Ó
µµ°¡ ´õ ºü¸£±â ¶§¹®ÀÌ´Ù. ±ÍÂú°Ô Àμö¸¦ ÁÖ°í ¸®ÅÏ°ªÀ» ¹Þ°í ÇÏ´Â ÀÏÀÌ ¹ß»ý
ÇÏÁö ¾Ê´Â´Ù.
ÇÏÁö¸¸ ´Ù ÁÁÀ¸¶õ ¹ýÀº ¾ø´Â ¸¸Å­ inline ÇÔ¼ö´Â ½ÇÇà ÆÄÀÏÀÇ Å©±â¸¦ Å©°Ô ¸¸
µå´Â ÁÖ¹üÀÌ µÇ±âµµ ÇÑ´Ù. ÇÁ·Î±×·¡¹Ö¿¡¼­ size¿Í speed´Â ÀÌ·± ½ÄÀ¸·Î °ÅÀÇ
Ç×»ó ´ë¸³ÀûÀÎ °ü°è¿¡ ÀÖÀ¸¸ç ±×·¡¼­ ÇÊ¿ä¿¡ µû¶ó °ñ¶ó¼­ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï µÇ
¾î ÀÖ´Ù. ¼Óµµ¿¡ ´õ °¡Ä¡¸¦ µÐ´Ù¸é inline ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÒ °ÍÀÌ°í size°¡
µÇµµ·ÏÀ̸é À۱⸦ ¿øÇÑ´Ù¸é inlineÇÔ¼öÀÇ »ç¿ëÀ» »ï°¡ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ inline
ÇÔ¼öÀÇ ¿¹Á¦¸¦ º¸ÀÚ.

#include <iostream.h>

inline int add( int a, int b)
{
 return a + b;
}

void main()
{
 cout << add( 3, 7) << endl;
 cout << add( 9, 8) << endl;
}

À§ ¿¹Á¦¿¡¼­ µÎ Á¤¼ö °ªÀ» ´õÇÏ´Â add ÇÔ¼ö°¡ inline ÇÔ¼ö·Î Á¤ÀǵǾî Àִµ¥
ÀÚ½ÅÀÌ È£Ãâ( =½ÇÇà)µÇ±â Àü¿¡ ¸ÕÀú Á¤ÀǵǾî¾ß ÇϹǷΠÇÁ·Î±×·¥ ¼±µÎ¿¡ ³ªÅ¸
³ª°Ô µÈ´Ù. ±âº» Çü½ÄÀº ÀÏ¹Ý ÇÔ¼ö¿Í °°µÇ ´Ù¸¸ ¾Õ¿¡ inlineÀ̶ó´Â Å°¿öµå¸¸
Ãß°¡½ÃÄÑ ÁÖ¸é µÈ´Ù.
inline ÇÔ¼ö´Â ±× ÀÚü°¡ ¼±¾ðÀ̹ǷΠÇÁ·Î±×·¥ ¼±µÎ¿¡ À§Ä¡Çϱ⸸ ÇÑ´Ù¸é º°
µµÀÇ ¿øÇü ¼±¾ðÀº ÇÊ¿ä°¡ ¾ø´Ù. inline ÇÔ¼ö´Â ±× ¼Ó¼ºÀ» Àß ¾Ë°í ½á¾ß ±× Áø
°¡¸¦ Á¦´ë·Î ¹ßÈÖÇÒ ¼ö ÀÖ´Ù.
ÀÌ¹Ì ¾ð±ÞÇßµíÀÌ ¼Óµµ´Â ÁÁÀº ¹Ý¸é ½ÇÇà ÆÄÀÏ Å©±â¿¡ ºÒ¸®ÇϹǷΠ±¸Á¶°¡ ±ØÈ÷
°£´ÜÇÑ ÇÔ¼ö¸¸ inline ÇÔ¼ö·Î »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. inline ÇÔ¼ö´Â ¿©·¯ °¡Áö
¸é¿¡¼­ ¸ÅÅ©·Î ÇÔ¼ö¿Í ºñ½ÁÇÑ ¼ºÁúÀ» °¡Áö°í ÀÖÀ¸¸ç ½ÇÁ¦·Î Á¶±Ý ÇüÅ°¡ º¹Àâ
ÇÑ ¸ÅÅ©·Î ÇÔ¼öÀÌ´Ù.
µÚ¿¡ ¹è¿ì°ÚÁö¸¸ class ³»ºÎ¿¡¼­ Á¤ÀÇµÈ ¸â¹ö ÇÔ¼ö´Â ÀÚµ¿À¸·Î inline ÇÔ¼ö°¡
µÇ¹Ç·Î ÀϺη¯ inline ÇÔ¼ö¸¦ ¸¸µé¾î ¾²Áö ¾Ê´õ¶óµµ inline ÇÔ¼öÀÇ Æ¯¼º¿¡ ´ë
Çؼ­´Â ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù.

¸¶. ÁÖ¼®

C¿¡¼­´Â ÁÖ¼®¹®ÀÌ /*·Î ½ÃÀÛÇؼ­ */·Î ³¡ÀÌ ³ªµµ·Ï µÇ¾î ÀÖ´Ù. ½ÃÀÛ°ú ³¡À»
µû·Î ºÐ¸®ÇÏ¿© Ç¥½ÃÇϹǷΠ¿©·¯ Çà¿¡ °ÉÃļ­ ÁÖ¼®À» ±âÀÔÇÒ ¼ö ÀÖ¾î Æí¸®ÇÑ ¸é
µµ ÀÖÁö¸¸ ªÀº ÁÖ¼® ÀÌÇà ´ÜÀ§·Î »ðÀ﵃ ¶§´Â ÀÏÀÏÀÌ Ã³À½°ú ³¡À» /*¿Í */·Î
½Î ÁÖ¾î¾ß Çϱ⠶§¹®¿¡ ºÒÆíÇÏ¿´´Ù.
±×·¡¼­ C++¿¡¼­´Â ÇÑ Çุ ÁÖ¼®À¸·Î ó¸®ÇÒ ¼ö ÀÖ´Â //¸¦ Á¦°øÇÑ´Ù. ÄÄÆÄÀÏ·¯
°¡ ¼Ò½º ÆÄÀÏÀ» Àдø Áß¿¡ //¸¦ ¸¸³ª°Ô µÇ¸é ±× ÇàÀÇ ³¡±îÁö¸¦ ÁÖ¼®À¸·Î ó¸®
ÇÏ°Ô µÈ´Ù.
ÁÖ¼®ÀÇ ½ÃÀÛ ºÎºÐ¿¡¸¸ //À» ±âÀÔÇØÁÖ¸é µÇ¹Ç·Î ÁÖ¼®À» ³Ö±â°¡ ÇÑ°á ´õ Æí¸®ÇØ
Á³´Ù. ±×·¯³ª //¸¦ ÁÖ¼® ±âÈ£·Î ÇÑ´Ù°í Çؼ­ C++¿¡¼­ /* */¸¦ ÁÖ¼®À¸·Î »ç¿ëÇÏ
Áö ¸øÇÏ´Â °ÍÀº ¾Æ´Ï¸ç °æ¿ì¿¡ µû¶ó ÀûÀýÇÑ ÁÖ¼® ±âÈ£¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ÁÖ·Î
±æ°í ¾çÀÌ ¸¹Àº ÁÖ¼®À» Ç¥½ÃÇÒ ¶§´Â /* */¸¦ »ç¿ëÇÏ´Â °ÍÀÌ À¯¸®ÇÏ°í °£´ÜÇÏ°í
ªÀº ÁÖ¼®Àº //·Î Ç¥½ÃÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÁÖ¼®¹®Àº ÀÌ Ã¥ÀÇ ¿¹Á¦ °÷°÷¿¡¼­ º¼ ¼ö
ÀÖÀ¸¹Ç·Î µû·Î ¿¹Á¦¸¦ ½ÆÁö´Â ¾Ê´Â´Ù.

¹Ù. ¿¹¾à¾î

C++ÀÇ ±â´ÉÀÌ È®ÀåµÊÀ¸·Î½á »õ·Î¿î ¿¹¾à¾î(keyword)°¡ »ý°Ü³ª°Ô µÇ¾ú´Ù. ´ÙÀ½
¿¡ º¸ÀÎ C++¿¡¼­ Ãß°¡µÈ ¿¹¾à¾î´Â ÇÔ¼ö¸íÀ̳ª º¯¼ö¸í µîÀÇ »ç¿ëÀÚ°¡ Á¤ÀÇÇؼ­
»ç¿ëÇÏ´Â ¸íĪÀÌ µÉ ¼ö ¾ø´Ù. ¹°·Ð C ¹®¹ýÀ» µû¸¥´Ù¸é »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ º°·Î
¹Ù¶÷Á÷ÇÑ ÀÏÀº ¾Æ´Ï´Ù.

-class °ü·Ã
class, friend, virtual, this

-access ÁöÁ¤ÀÚ
private, protected, public

-¿¬»êÀÚ
operator, new, delete

-¿¹¿Ü ó¸®
try, catch, throw

-±âŸ
template

ÀÌ Áß¿¡¼­ ¿¹¿Ü 󸮿¡ »ç¿ëµÇ´Â Å°¿öµå¿Í ÅÛÇø´Àº ¾ÆÁ÷±îÁö ±× ±â´ÉÀÌ ½ÃÇè
ÀûÀÎ ´Ü°èÀ̹ǷΠº°·Î »ç¿ëÇÒ ±âȸ°¡ ¾øÀ» °ÍÀÌ´Ù. C++À» °øºÎÇÏ´Ù º¸¸é ¿©±â
¼­ º¸ÀÎ ¿¹¾à¾îµéÀÌ for³ª return, include, define µî°ú °°ÀÌ À̶§±îÁö ÀÚÁÖ
½á¿À´ø ¿¹¾à¾îó·³ Ä£¼÷ÇØÁú °ÍÀÌ´Ù.


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


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