[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 µî°ú °°ÀÌ À̶§±îÁö ÀÚÁÖ
½á¿À´ø ¿¹¾à¾îó·³ Ä£¼÷ÇØÁú °ÍÀÌ´Ù.
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------