[C++]°ÁÂ(3)<--¹®¹ýÀÇ ¾ö°Ý¼º
**********************************************
**********************************************
1-2 ¹®¹ýÀû ¾ö°Ý¼º
°¡. ÇÔ¼öÀÇ ¿øÇü ¹Ýµå½Ã Á¤ÀÇ
ÇÔ¼öÀÇ ¿øÇüÀ̶õ ÄÄÆÄÀÏ·¯¿¡°Ô ÇÔ¼öÀÇ ÇüÅ¿¡ °üÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÖ´Â °ÍÀ̸ç
´ÙÀ½°ú °°Àº ÇüÅ·ΠC¿¡¼ ÇÔ¼öÀÇ ¿øÇüÀ» ¹àÇôÁÖ¾ú¾ú´Ù.
* Ç¥ÁØ ÇÔ¼ö : ±× ÇÔ¼öÀÇ ¿øÇüÀÌ Æ÷ÇԵǾî ÀÖ´Â Çì´õ ÆÄÀÏÀ» includeÇÏ¿© ¿øÇü
À» ¼±¾ðÇÑ´Ù.
* »ç¿ëÀÚÁ¤ÀÇ ÇÔ¼ö : main ÆÄÀÏÀÇ ¼±µÎ¿¡ ÇÔ¼öÀÇ ¿øÇüÀ» Á÷Á¢ ¹àÇô ÁØ´Ù. ´ÙÁß
¸ðµâÀÇ ÇÁ·ÎÁ§Æ®ÀÎ °æ¿ì´Â º°µµÀÇ Çì´õ ÆÄÀÏÀ» ¸¸µé¾î µÎ°í Çì´õ ÆÄÀÏ¿¡ »ç¿ë
ÀÚÁ¤ÀÇ ÇÔ¼öÀÇ ¿øÇüÀ» ¸ðµÎ ¹àÈù ÈÄ main ÆÄÀÏ¿¡¼´Â Çì´õ ÆÄÀÏÀ» includeÇϱâ
µµ ÇÑ´Ù.
C¸¦ Á¦´ë·Î °øºÎÇß´Ù¸é ÀÌ Á¤µµ´Â Àß ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ±×·±µ¥ C¿¡¼´Â ¿¹¿Ü
»çÇ×ÀÌ Á¸ÀçÇϴµ¥ ±× ¿¹¿Ü »çÇ×À̶õ ÇÔ¼öÀÇ ¿øÇüÀÌ ¹àÇôÁöÁö ¾ÊÀº °æ¿ì¿¡ µð
ÆúÆ® ¿øÇüÀ» Àû¿ëÇÑ´Ù´Â °ÍÀÌ´Ù. ÇÔ¼öÀÇ µðÆúÆ® ¿øÇüÀº ¸®ÅÏ°ªÀÌ intÇüÀ̸ç ÀÎ
¼ö¿¡ °üÇÑ ±ÔÁ¤Àº ¾ø´Ù. Áï ¼±¾ðµÇÁö ¾ÊÀº ÇÔ¼ö nodecl() ÇÔ¼ö°¡ È£ÃâµÇ¸é ÀÌ
ÇÔ¼öÀÇ ¸®ÅÏ°ªÀ» Á¤¼öÇüÀ¸·Î Ãë±ÞÇÏ°í Àμö´Â È£Ãâ½ÃÀÇ Àμö¸¦ »ç¿ëÇϵµ·Ï µÇ
¾î ÀÖ´Ù. ±×·¡¼ ÀÌ·¯ÇÑ µðÆúÆ® ¿øÇü°ú ÀÏÄ¡ÇÏ´Â ¿øÇüÀ» °¡Áö´Â ÇÔ¼ö´Â ¿øÇüÀ»
¼±¾ðÇØÁÖÁö ¾Ê´õ¶óµµ Á¦´ë·Î ÄÄÆÄÀϵǾú´Ù.
printf, putch, scanf µîµî ¿ì¸®°¡ Ç×»ó ¾Ö¿ëÇß´ø ÀÌ·¯ÇÑ ÇÔ¼öµéÀÌ ¸ðµÎ ÀÌ
ºÎ·ù¿¡ ¼ÓÇÏ´Â ÇÔ¼öµéÀÌ´Ù. ´ëÇ¥ÀûÀ¸·Î printf¸¦ º¸¸é Ưº°È÷ ¸®ÅÏÇÒ °ªµµ ¾ø
´Â ÁÖÁ¦¿¡ intÇüÀ» ¸®ÅÏÇÏ°í Àִµ¥ ¾Æ¸¶µµ µðÆúÆ® ¿øÇü°ú ¸ÂÃß±â À§ÇÑ °ÍÀÌ
¾Æ´Ñ°¡ ÇÏ°í »ý°¢µÈ´Ù. ±×·¡¼ C¿¡¼ ÀÌ·± ÇÔ¼ö¸¦ ¾µ ¶§´Â Çì´õ ÆÄÀÏÀ» ½À°üÀû
À¸·Î »ý·«ÇÏ°ï ÇÑ´Ù.
ÇÏÁö¸¸ C++¿¡¼´Â ±×·¸Áö ¸øÇÏ´Ù. µðÆúÆ® ¿øÇü µûÀ§¸¦ Àû¿ëÇØÁÖ´Â ÀÏÀº ¾øÀ¸
¸ç »ç¿ëÇÑ ¸ðµç ÇÔ¼ö¿¡ ´ëÇØ ¿øÇüÀ» ÀÏÀÏÀÌ ¹àÇôÁְųª Çì´õ ÆÄÀÏÀ» Æ÷ÇÔ½ÃÄÑ
¾ß ÇÑ´Ù. ¹®¹ýÀûÀ¸·Î Á»´õ ¾ö°ÝÇÑ ±¸Á¶¸¦ °¡ÁüÀ¸·Î½á ½Ç¼ö¸¦ ¹Ì¿¬¿¡ ¹æÁöÇϱâ
À§ÇؼÀ̱⵵ ÇÏÁö¸¸ C++ÀÇ Æ¯¼ºÀÎ ´ÙÇü¼º(polymorphism)ÀÌ ½ÇÇöµÇ±â À§Çؼ´Â
¸ðµç ÇÔ¼öÀÇ ¿øÇüÀÌ ¹Ýµå½Ã ÇÊ¿äÇϱ⠶§¹®ÀÌ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ ½ÇÇà½ÃÄÑ º¸ÀÚ.
void main()
{
printf( "prototype\n");
}
´õ ÀÌ»ó ¼³¸íÀ» ÇÒ ÇÊ¿ä°¡ ¾ø´Â °£´ÜÇÑ ÇÁ·Î±×·¥ÀÌ´Ù. ÀÌ ÇÁ·Î±×·¥À» test.c
¶ó´Â À̸§À» ½á¼ µð½ºÅ©¿¡ º¸°ü ÈÄ ½ÇÇà½ÃÅ°¸é C ¹®¹ýÀ» µû¸£±â ¶§¹®¿¡ ¹«¸®
¾øÀÌ ½ÇÇàµÈ´Ù. ÇÏÁö¸¸ À̸§À» test.cpp¶ó´Â À̸§À¸·Î È®ÀåÀÚ¸¦ ¹Ù²Ù¾î ´Ù½Ã
ÀúÀåÇÏ°í ÄÄÆÄÀϽÃÅ°¸é C++ ¹®¹ýÀ» µû¸£¹Ç·Î ´ÙÀ½°ú °°Àº ¿¡·¯ ¸Þ½ÃÁö°¡ ³ª°í
ÄÄÆÄÀÏÀº ÁߴܵȴÙ.
Function 'printf' should have a prototype.
ÇÔ¼öÀÇ ¿øÇüÀÌ Á¤ÀǵÇÁö ¾Ê¾Æ ÄÄÆÄÀÏÇÒ ¼ö°¡ ¾ø´Ù´Â ¶æÀÌ´Ù. #include <stdio
.h>¸¦ Æ÷ÇÔ½ÃÄÑ ÁÖ¸é ¹®Á¦°¡ ÇØ°áµÈ´Ù. Á¤¸®ÇÏÀÚ¸é C++¿¡¼´Â ¸ðµç ÇÔ¼öÀÇ ¿ø
ÇüÀ» ¹àÇôÁÖ¾î¾ß Çϸç Àý´ë·Î »ý·«ÇÒ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù.
À§¿Í °°Àº ¸Þ½ÃÁö¸¦ ¸¸³ª´Â Á·Á· ·¹ÆÛ·±½º³ª help¸¦ µÚÁ® ±× ÇÔ¼öÀÇ ¿øÇüÀÌ
¼±¾ðµÇ¾î ÀÖ´Â Çì´õ ÆÄÀÏÀ» Æ÷ÇÔ½ÃÄÑ ÁÖµµ·Ï ÇÏÀÚ.
³ª. ¸Å°³ º¯¼ö ŸÀÔ »ý·« ºÒ°¡´É
C¿¡¼ ÇÔ¼öÀÇ ¿øÇüÀ» ¹àÇôÁÖ´Â ¹æ¹ý¿¡´Â 3°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.
1 ÇÔ¼öÀÇ ¸®ÅÏ°ª¸¸ ¸í½ÃÇÑ´Ù.
int func();
2 ÇÔ¼öÀÇ ¸®ÅÏ°ª°ú ÀμöÀÇ Å¸ÀÔ¸¸ ¸í½ÃÇÑ´Ù.
int func( int, char);
3 ÇÔ¼öÀÇ ¸®ÅÏ°ª°ú ÀμöÀÇ Å¸ÀÔ, ÀμöÀÇ À̸§±îÁö ¼±¾ðÇÑ´Ù.
int func( int a, char c)
ÀÌ ¼¼ °¡Áö ¹æ¹ýÀÌ ¸ðµÎ °¡´ÉÇϸç ÀÌÁß 2¹ø ¹æ¹ýÀÌ Á¦ÀÏ ±ÇÀåµÇ´Â ¹æ¹ýÀÌ´Ù.
±×·±µ¥ »ç¶÷ÀÌ ¿ø·¡ °£ÆíÇÑ °ÍÀ» ÁÁ¾ÆÇÏ´Â ¼Ó¼ºÀÌ ÀÖ¾î 1¹ø Çü½ÄÀ» ¾Ö¿ëÇÏ´Â
»ç¶÷µéÀÌ ¸¹ÀÌ Àִµ¥ ÀÌ Çü½ÄÀ» »ç¿ëÇÏ´õ¶óµµ C°¡ Àμö ŸÀÔÀ» üũÇØÁÖÁö ¾Ê
´Â´Ù´Â °Í»Ó º° ¹«¸®´Â ¾ø¾ú´Ù. ±×·¯³ª C++¿¡¼´Â ÀÌ·¯ÇÑ °£ÆíÇÑ ¹æ¹ýÀÌ Çã¿ë
µÇÁö ¾ÊÀ¸¸ç ¹Ýµå½Ã ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¹àÇôÁÖ´Â 2¹ø Çü½ÄÀ̳ª 3¹ø Çü½ÄÀ»
»ç¿ëÇØ¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é ´ÙÀ½°ú °°Àº ¿¡·¯°¡ ³´Ù.
Extra parameter in call to func()
¿øÇü¿¡´Â Àμö°¡ ¾ø´Âµ¥ È£Ãâ½Ã¿¡ Àμö°¡ ¹ß°ßµÇ¾úÀ¸¹Ç·Î ¿¡·¯·Î °£ÁֵȴÙ.
ÀμöÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀ» ¹Ýµå½Ã ¹àÇôÁÖ¾î¾ß ÇÏ´Â °Íµµ ¹®¹ýÀÌ ¾ö°ÝÇÑ ÂÊÀ¸·Î º¯
ÇÑ °ÍÀ̸ç À̸§Àº °°°í Àμö°¡ ´Ù¸¥ ÇÔ¼öµéÀ» ±¸º°Çس»±â À§ÇÑ ´ÙÇü¼ºÀ» À§ÇÑ
°ÍÀÌ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.
#include <stdio.h>
int add();
void main()
{
printf( "3+2=%d", add( 3, 2));
}
int add( int a, int b)
{
return a + b;
}
ÀÌ ¿¹Á¦¸¦ C Çü½ÄÀ¸·Î(È®ÀåÀÚ°¡ C) ÄÄÆÄÀÏÇÏ¸é ¹®Á¦°¡ ¾øÁö¸¸ C++ Çü½ÄÀ¸·Î(
È®ÀåÀÚ°¡ cpp) ÄÄÆÄÀÏÇÏ¸é ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. ÇÔ¼öÀÇ ¿øÇüÀº ¹Ýµå½Ã ¹àÇôÁÖµÇ 2
¹ø Çü½ÄÀ̳ª 3¹øÇü½Ä, ±× Áß¿¡µµ ƯÈ÷ 2¹ø Çü½ÄÀÌ ±ÇÀåÇÒ ¸¸ÇÏ´Ù.
**********************************************
**********************************************
1-3 È®ÀåµÈ Á¡
°¡. ÇÔ¼ö Áß°£¿¡¼ º¯¼ö ¼±¾ð
C¿¡¼ º¯¼ö´Â ¹Ýµå½Ã ÇÔ¼ö ¹Ù±ù¿¡¼ ¼±¾ð(Àü¿ª º¯¼ö)µÇ°Å³ª ¶Ç´Â ÇÔ¼ö ³»ºÎÀÇ
¼±µÎ(Áö¿ªº¯¼ö)¿¡¼ ¼±¾ðµÇ¾î¾ß ÇÑ´Ù. ±×·¯³ª C++¿¡¼´Â ÇÔ¼ö ³»ºÎÀÇ Áß°£Âë¿¡
µµ º¯¼ö°¡ ¼±¾ðµÉ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦°¡ ±× ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù.
#include <stdio.h>
void main()
{
int i;
i = 3;
int j; // »õ·Î¿î º¯¼ö¸¦ ¼±¾ð
j = 5;
for ( i = 1; i < 10; i ++)
printf( "%d\n", j);
}
5Çà¿¡¼ i¿¡ 3À» ´ëÀÔÇÏ´Â ´ëÀÔ¹®ÀÌ ¿À°í ³ ÈÄ¿¡µµ º¯¼ö j¸¦ ¼±¾ðÇÏ´Â °ÍÀÌ
°¡´ÉÇÏ´Ù. C¿¡¼´Â ÇÔ¼ö È£Ãâ, ¿¬»ê½Ä µîÀÇ Äڵ带 »ý¼º½ÃÅ°´Â ¹®Àå ÀÌÈÄ¿¡ º¯
¼ö¸¦ ¼±¾ðÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÑ ÀÏÀÌ´Ù. ±×·¯³ª ÀÌ ¹æ¹ýÀÌ ºñ·Ï °¡´ÉÀº ÇÏ´Ù°í
Çصµ º°·Î ±ÇÀåÇÒ ¸¸ÇÑ ¹æ¹ýÀº ¾Æ´Ï´Ù. º¯¼öÀÇ ¼±¾ðÀº °¡±ÞÀû ÇÑ °÷¿¡ ¸ð¾Æ¼
ÇÏ´Â °ÍÀÌ ½Ã°¢»ó, È¿À²»ó ÈξÀ À¯¸®ÇÏ´Ù.
º¯¼öÀÇ ¼±¾ðÀÌ ÇÔ¼ö ³»ºÎÀÇ ÀÌ°÷ Àú°÷¿¡¼ Áß±¸ ³¹æÀ¸·Î ÀÌ·ç¾îÁø´Ù¸é ³ªÁß
¿¡ ¼öÁ¤ÇϱⰡ °ï¶õÇØÁö°í º¯¼ö°¡ ¼û¹Ù²ÀÁúÀ» ÇÏ´Â »çÅ°¡ ¹ß»ýÇÏ°Ô µÈ´Ù. ´Ù
À½°ú °°Àº ÇüÅ·Πº¯¼ö¸¦ ¼±¾ðÇؼ »ç¿ëÇÏ´Â °ÍÀº ²Ï Æí¸®ÇÑ ¹æ¹ýÀÌ¸ç ½Ç¿ëÀû
À¸·Îµµ ¹è¿öµÑ¸¸ÇÑ ¹æ¹ýÀÌ´Ù.
#include <stdio.h>
void main()
{
int j;
j = 588;
for ( int i = 0; i < 10; i ++) // ·çÇÁ ³»ºÎ¿¡¼ º¯¼ö ¼±¾ð
printf( "%d\n", i);
}
C++¿¡¼´Â for, while µîÀÇ ¼øȯ¹® ¼±µÎ¿¡ º¯¼ö¸¦ ¼±¾ðÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
for ·çÇÁ ³»ºÎ¿¡¼¸¸ Àá½Ã ¾²ÀÌ°í ¸» ·çÇÁ Á¦¾î º¯¼ö¶ó¸é ±»ÀÌ ÇÔ¼ö ¼±µÎ¿¡¼
¸¸µé ÇÊ¿ä¾øÀÌ for ·çÇÁ¿¡¼ ¸¸µé¾î ¾²´Â °ÍÀÌ ÁÁ´Ù.
ÀÌ·¸°Ô for ·çÇÁÀÇ ¼±µÎ¿¡¼ ¼±¾ðµÈ º¯¼ö´Â for ·çÇÁ¿¡¼¸¸ »ç¿ëµÇ¸ç for ·ç
ÇÁ°¡ Á¾·áµÇ´Â Áï½Ã ±â¾ïÀå¼Ò°¡ ¹Ý³³µÇ°í »ý¸íÀÌ ´ÙÇÏ´Â Áö¿ª º¯¼öÀÌ´Ù. C¿¡¼
ÀÌ·¯ÇÑ ±¹ºÎÀûÀÎ º¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ¾ø±â ¶§¹®¿¡ Á¦¾î º¯¼ö·Î Àá½Ã ¾²ÀÌ´Â º¯¼ö
¶óµµ ¹Ýµå½Ã ÇÔ¼öÀÇ ¼±µÎ¿¡ ¼±¾ðÇØÁÖ¾î¾ß ÇÏ´Â ºÒÆíÇÔÀÌ ÀÖ¾ú´Ù. Âü°í·Î ´ÙÀ½
°ú °°Àº º¯¼ö ¼±¾ðµµ °¡´ÉÇÏ´Ù.
#include <stdio.h>
void main()
{
int i;
for ( i = 1; i < 5; i ++)
{
int j; // ¿©±â¼ »õ·Î¿î º¯¼ö¸¦ ¼±¾ð
j = i * 2;
printf( "%d\n", j);
}
}
ÇÔ¼öÀÇ ¼±µÎ°¡ ¾Æ´Ñ for ·çÇÁÀÇ ºí·° ½ÃÀÛ ºÎºÐ¿¡¼ º¯¼ö°¡ ¼±¾ðµÇ¾î »ç¿ëµÈ
´Ù. C¸¦ ¿À·§µ¿¾È »ç¿ëÇÑ »ç¶÷µµ ÀÌ ¹æ¹ýÀº Àß ¸ð¸£°í Àִµ¥ C++¿¡¼ »õ·Î Ãß
°¡µÈ °ÍÀÌ ¾Æ´Ï¶ó ¿ø·¡ C¿¡¼ ÀÌ ¹æ¹ýÀÌ °¡´ÉÇÏ´Ù. C´Â ¸ðµç Á¾·ùÀÇ ºí·° ¼±µÎ
¿¡¼({ }ÀÇ ¼±µÎ) º¯¼ö ¼±¾ðÀÌ °¡´ÉÇϵµ·Ï µÇ¾î ÀÖ´Ù.
ÀÌ¾î¼ °è¼ÓµË´Ï´Ù. ==============>>>>>>>
--------------------------------------------------------------------------------