±¸Á¶Ã¼´Â ´Ù¾çÇÑ Å¸ÀÔÀÇ º¯¼ö¸¦ ¸ð¾Æ ³õÀº °ÍÀε¥ C++¿¡¼ ÇÔ¼ö±îÁö
Æ÷ÇÔÇÏ¿© ¼Ó¼º »Ó¸¸ ¾Æ´Ï¶ó µ¿ÀÛ±îÁö Ç¥ÇöÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ±¸Á¶Ã¼ º¯¼ö´Â °´Ã¼°¡ µÊÀ¸·Î½á °´Ã¼ ÁöÇâÀÇ
ºÎÇ°ÀÌ µÈ´Ù. È®ÀåµÈ ±¸Á¶Ã¼¿¡ ¹º°¡ ¸ÚÁö°í ±×·²µíÇÑ À̸§À» ºÙÀÎ °ÍÀÌ ¹Ù·Î Ŭ·¡½ºÀÌ´Ù. Ŭ·¡½ºµµ ÀÏÁ¾ÀÇ ±¸Á¶Ã¼ÀÌÁö¸¸ CÀÇ ÀüÅëÀûÀÎ ±¸Á¶Ã¼¿Í ±¸ºÐÇϱâ À§ÇØ
»õ·Î¿î À̸§À» ºÙ¿´´Ù.
°á±¹ Ŭ·¡½º´Â º°´Ù¸¥ °ÍÀÌ ¾Æ´Ï¶ó ÇÔ¼ö¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Â È®ÀåµÈ ±¸Á¶Ã¼ÀÌ´Ù. ±¸Á¶Ã¼
¼±¾ð¹®ÀÇ struct¸¦ class Å°¿öµå·Î ¹Ù²Ù¸é Ŭ·¡½º°¡
µÈ´Ù. ±¸Á¶Ã¼¿Í Ŭ·¡½ºÀÇ À¯ÀÏÇÑ Â÷ÀÌÁ¡Àº µðÆúÆ® ¾×¼¼½º ÁöÁ¤ÀÚ »ÓÀε¥ ±¸Á¶Ã¼´Â publicÀÌ°í Ŭ·¡½º´Â privateÀÌ´Ù. ±¸Á¶Ã¼´Â º°´Ù¸¥ ÁöÁ¤ÀÌ ¾øÀ» ¶§ ¸â¹ö¸¦ ¿ÜºÎ·Î °ø°³ÇÏÁö¸¸ Ŭ·¡½º´Â °¡±ÞÀûÀÌ¸é ¸â¹ö¸¦ ¼û±ä´Ù.
struct S { int
x; .... }; S s; s.x = 1234; // °¡´É |
class C { int
x; .... }; C c; c.x = 1234; // ¿¡·¯ |
¾×¼¼½º ÁöÁ¤ÀÚ ¾øÀÌ ¸â¹ö º¯¼ö x¸¦ ¼±¾ðÇß´Ù. ±¸Á¶Ã¼ÀÇ ¸â¹ö s.x´Â
public ¼Ó¼ºÀ» °¡Á® ¾Æ¹«³ª ÀÐÀ» ¼ö Àִµ¥ ºñÇØ Å¬·¡½ºÀÇ ¸â¹ö c.x´Â private ¼Ó¼ºÀ» °¡Á® ¿ÜºÎ¿¡¼ ÂüÁ¶ÇÒ ¼ö ¾ø´Ù. ÀüÅëÀûÀÎ ±¸Á¶Ã¼´Â
¸â¹ö¿¡ ´ëÇÑ ¾×¼¼½º Á¦ÇÑÀÌ ¾ø¾úÀ¸¹Ç·Î ÇÏÀ§ ȣȯ¼º À¯Áö¸¦ À§ÇØ °ø°³°¡ µðÆúÆ®ÀÌ´Ù. ±×·¯³ª Ŭ·¡½º´Â Á¤º¸
ÀºÆó¸¦ À§ÇØ °¡±ÞÀû ¸â¹ö¸¦ ¼û±ä´Ù.
¹°·Ð ¾îµð±îÁö³ª µðÆúÆ®¸¸ ´Ù¸¦ »Ó ¾çÂÊ ¸ðµÎ ¾×¼¼½º ÁöÁ¤ÀÚ¸¦ ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ µÎ ½ÖÀÇ ¼±¾ð¹®Àº ¿ÏÀüÈ÷ °°´Ù. ¾×¼¼½º ÁöÁ¤ÀÚ¸¦ private·Î ¹Ù²Û ±¸Á¶Ã¼´Â Ŭ·¡½º¿Í µ¿ÀÏÇÏ¸ç ¹Ý´ë·Î ¾×¼¼½º ÁöÁ¤ÀÚ¸¦
publicÀ¸·Î ¹Ù²Û Ŭ·¡½º´Â ±¸Á¶Ã¼¿Í µ¿ÀÏÇÏ´Ù.
±× ¿Ü¿¡´Â ¾î¶°ÇÑ Â÷ÀÌÁ¡µµ ¾ø´Ù. ÀÌ¹Ì ½ÀµæÇÑ ±¸Á¶Ã¼ °ü·Ã ¹®¹ýÀÎ . ¿¬»êÀÚ, -> ¿¬»êÀÚ, ±¸Á¶Ã¼
´ëÀÔ, ±¸Á¶Ã¼ Áßø µîÀº Ŭ·¡½º¿¡µµ ±×´ë·Î Àû¿ëµÈ´Ù. ¸¶Âù°¡Áö·Î
ÀÌÈÄ ¹è¿ì°Ô µÉ »ó¼Ó, ´ÙÇü¼º, ¿¬»êÀÚ ¿À¹ö·Îµùµµ ±¸Á¶Ã¼¿¡
µ¿ÀÏÇÏ°Ô Àû¿ëµÈ´Ù. ±¸Á¶Ã¼·Î ¸¸µé¾ú´ø ¿¹Á¦¸¦ Ŭ·¡½º·Î ¹Ù²Ù¾î º¸ÀÚ.
HumanClass |
#include <stdio.h>
class Human
{
public:
char
name[12];
int
age;
void
intro() {
printf("À̸§ = %s, ³ªÀÌ = %d\n", name, age);
}
};
int main()
{
Human
kim = { "±è»óÇü", 29 };
kim.intro();
}
Å°¿öµå struct ´ë½Å class¸¦
»ç¿ëÇÏ¿© Ŭ·¡½º·Î ¼±¾ðÇß´Ù. ²À ÇÊ¿äÄ¡´Â ¾ÊÁö¸¸ Á¢µÎ S°¡
±¸Á¶Ã¼¸¦ ÀǹÌÇϹǷΠÁ¦°ÅÇÏ°í ÆòÀÌÇÏ°Ô HumanÀ¸·Î À̸§À» ¹Ù²Ù¾ú´Ù.
Ŭ·¡½º´Â °üÇà»ó Á¢µÎ C¸¦ ºÙ¿© CHumanÀ¸·Î
Àû±âµµ Çϴµ¥ ½Ç½ÀÀÌ ¹ø°Å·Î¿ö ªÀº ¸í»ç¸¦ ¾²±â·Î ÇÑ´Ù. º¯¼ö³ª ÇÔ¼ö¿Í ±¸ºÐÇϱâ À§ÇØ Ã¹ ÀÚ¸¦ ´ë¹®ÀÚ·Î
½ÃÀÛÇÑ´Ù.
Ŭ·¡½ºÀÇ µðÆúÆ® ¾×¼¼½º ÁöÁ¤ÀÚ°¡ privateÀ̹ǷΠÀÌÀü ¼Ò½ºÀÇ ±¸Á¶Ã¼¿Í
ȣȯµÇµµ·Ï ¾×¼¼½º ÁöÁ¤ÀÚ¸¦ publicÀ¸·Î ÁöÁ¤Çß´Ù. È®ÀåµÈ
±¸Á¶Ã¼´Â Ŭ·¡½º¿Í »ç½Ç»ó °°Áö¸¸ ¸â¹ö ÇÔ¼ö¸¦ °¡Áú ¶§´Â Ŭ·¡½º·Î ¼±¾ðÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ±¸Á¶Ã¼´Â
º¯¼öÀÇ ÁýÇÕÀÏ ¶§¸¸ »ç¿ëÇÑ´Ù.
C++¿¡¼´Â űװ¡ ŸÀÔÀ¸·Î ½Â°ÝµÇ¾î struct Å°¿öµå ¾øÀÌ SHuman ű׸¸À¸·Î º¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ÀÖ´Ù. À̴ Ŭ·¡½ºµµ ¸¶Âù°¡ÁöÀ̸ç HumanÀÌ int, double °°Àº ±âº»Çü ŸÀÔ°ú µ¿µîÇÑ ÀÚ°ÝÀ» °¡Áø´Ù. C++Àº
Ŭ·¡½º¸¦ ¿ÏÀüÇÑ Å¸ÀÔÀ¸·Î Á¤ÀÇÇϱâ À§ÇØ ¿©·¯ °¡Áö ¹®¹ýÀû ÀåÄ¡¸¦ Á¦°øÇÑ´Ù. ÀÌ ÀåÄ¡µé ´öºÐ¿¡ Á¤¼öÇü°ú
¶È°°Àº ¹æ¹ýÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â °¡»óÀÇ º¹¼Ò¼ö Ŭ·¡½º Complex¸¦ ¸¸µé ¼ö ÀÖ´Ù.
Á¤¼öÇü |
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; |
Àü¿ª ¿¬»êÀÚ ÇÔ¼ö¿Í ÇÁ·»µå |
C++¿¡´Â ¾ð¾î Â÷¿øÀÇ º¹¼Ò¼ö ŸÀÔÀÌ ¾øÁö¸¸ ÇÊ¿äÇÏ´Ù¸é Ŭ·¡½º·Î ŸÀÔÀ»
Á¤ÀÇÇÏ¸é µÈ´Ù. Á¤¼öÇü ŸÀÔÀÎ int°¡ ÇÒ ¼ö ÀÖ´Â ¸ðµç
µ¿ÀÛÀº º¹¼Ò¼ö Ŭ·¡½ºÀÎ Complexµµ ¶È°°ÀÌ ÇÒ ¼ö ÀÖ´Ù. º¹¼Ò¼ö
°´Ã¼³¢¸® ´õÇÏ°í »¬ ¼ö ÀÖ°í Àμö·Î Àü´ÞÇϰųª ¸®ÅÏÇÒ ¼öµµ ÀÖ´Ù. ±×·¡¼ Ŭ·¡½º´Â ¸ðµç ¸é¿¡¼ ŸÀÔÀÌ´Ù.
Humanµµ Á¤¼ö¿Í °°Àº ¹æ¹ýÀ¸·Î »ç¿ëÇÒ ¼ö Àִµ¥ »ç¶÷³¢¸® ´ëÀÔÇϰųª
Àü´ÞÇÒ ¼ö ÀÖ°í ¿¬»êÀÚ¸¦ Á¤ÀÇÇÏ¸é »ç¶÷³¢¸® ´õÇϰųª °öÇÒ ¼öµµ ÀÖ´Ù. ±×·¯·Á¸é Ŭ·¡½º¿¡ ´Ù¾çÇÑ ¹®¹ýÀ»
Àû¿ëÇØ¾ß Çϴµ¥ C++ÀÇ °ÅÀÇ ¸ðµç ¹®¹ýÀº Ŭ·¡½º¸¦ ¿ÏÀüÇÑ Å¸ÀÔÀ¸·Î ¸¸µé±â À§ÇØ Á¸ÀçÇÑ´Ù.
Ŭ·¡½º°¡ ÀÏÁ¾ÀÇ Å¸ÀÔÀ̹ǷΠŬ·¡½º·ÎºÎÅÍ ÆÄ»ýÇü ŸÀÔÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. T Çü¿¡
´ëÇØ TÇü Æ÷ÀÎÅÍ¿Í TÇü ¹è¿ÀÌ Ç×»ó °¡´ÉÇϹǷΠŬ·¡½ºÀÇ
¹è¿À̳ª °´Ã¼¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͵µ ¸¸µé ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦·Î È®ÀÎÇØ º¸ÀÚ.
HumanType |
#include <stdio.h>
class Human
{
public:
char
name[12];
int
age;
void
intro() {
printf("À̸§ = %s, ³ªÀÌ = %d\n", name, age);
}
};
int main()
{
Human
arFriend[10] = {
{
"¹®µ¿¿í", 49 },
{
"±èÀ¯Áø", 49 },
{
"¹Ú»ó¸·", 49 },
};
Human
*pFriend;
pFriend
= &arFriend[1];
pFriend->intro();
}
½ÇÇà°á°ú |
À̸§ = ±èÀ¯Áø, ³ªÀÌ = 49 |
Human ŸÀÔÀ¸·Î Å©±â 10ÀÇ
¹è¿ arFriend¸¦ ¼±¾ðÇÏ°í ¾ÕÂÊ 3°³¿¡ ´ëÇØ Ãʱ갪À»
ÁÖ¾ú´Ù. Ŭ·¡½ºÀÇ ¹è¿·Î ¸¹Àº »ç¶÷ÀÇ ½Å»óÀ» ÇϳªÀÇ ¹À½À¸·Î °ü¸®ÇÒ ¼ö ÀÖ°í Á¤º¸°¡ ¹è¿¿¡ ¸ð¿© ÀÖÀ¸´Ï
·çÇÁ¸¦ µ¹¸®¸ç ¹Ýº¹ÀûÀΠ󸮵µ °¡´ÉÇÏ´Ù.
Human ŸÀÔÀÇ °´Ã¼¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍÀÎ pFriend ´Â »ç¶÷ ÇѸíÀÇ Á¤º¸¸¦ °¡¸®Å²´Ù. ¿¹Á¦¿¡¼´Â arFriend[1]ÀÇ ÁÖ¼Ò¸¦ ´ëÀÔ¹Þ¾Æ ÀÌ ±¸Á¶Ã¼ÀÇ intro ÇÔ¼ö¸¦
È£ÃâÇß´Ù. ±¸Á¶Ã¼¿Í ¸¶Âù°¡Áö·Î Æ÷ÀÎÅͷκÎÅÍ ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§´Â ->
¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù.
º¸´Ù½ÃÇÇ arFriend ¹è¿À̳ª
pFriend Æ÷ÀÎÅ͸¦ »ç¿ëÇÏ´Â ¹æ½ÄÀº intÇü ¹è¿À̳ª
int *Çü º¯¼ö¿Í ¿ÏÀüÈ÷ °°´Ù. C ¹®¹ýÀÌ Å¬·¡½º¿¡ ´ëÇؼµµ ÀÏ°üµÇ°Ô Àû¿ëµÇ¾î ÀÌÂ÷ ¹è¿À̳ª
ÀÌÁß Æ÷ÀÎÅ͵µ ¼±¾ðÇÒ ¼ö ÀÖ´Ù. Ŭ·¡½º°¡ ÇϳªÀÇ Å¸ÀÔÀ̱⠶§¹®ÀÌ´Ù.
Ŭ·¡½º´Â ¾î¶² ¸â¹ö°¡ Æ÷ÇԵǾî ÀÖ´ÂÁö ÄÄÆÄÀÏ·¯¿¡°Ô ¾Ë¸®´Â ŸÀÔ ¼±¾ðÀÏ »Ó ±× ÀÚü°¡ Á¤º¸¸¦ ÀúÀåÇÏ´Â º¯¼ö´Â ¾Æ´Ï´Ù. Á¤º¸¸¦ ÀúÀåÇÏ·Á¸é Ŭ·¡½º ŸÀÔÀÇ º¯¼ö¸¦ ¼±¾ðÇØ¾ß ÇÑ´Ù.
Human kim;
int i;
Human kim ¼±¾ð¿¡ ÀÇÇØ Human
ŸÀÔÀÇ º¯¼ö kimÀÌ »ý¼ºµÇ¸ç ÀÌ °´Ã¼¿¡ »ç¶÷ÀÇ À̸§°ú ³ªÀ̸¦ ÀúÀåÇÑ´Ù. int i ¼±¾ð¿¡ ÀÇÇØ 4¹ÙÀÌÆ®ÀÇ Á¤¼ö¸¦ ÀúÀåÇÏ´Â º¯¼ö i°¡ »ý¼ºµÇ´Â °Í°ú °°À¸¸ç ÀÌ ¼±¾ð¿¡¼ ½ÇÁ¦ »ý¼ºµÇ´Â °ÍÀº iÀÌÁö int°¡ ¾Æ´Ï´Ù. Human, int´Â ŸÀÔÀÇ À̸§ÀÌ°í kim, i´Â º¯¼öÀÇ À̸§ÀÌ´Ù.
Ŭ·¡½º ŸÀÔÀ¸·Î ¼±¾ðµÈ º¯¼ö¸¦ ÀνºÅϽº(Instance)¶ó°í ÇÑ´Ù. Ŭ·¡½º°¡ ¸Þ¸ð¸®¿¡ ±¸ÇöµÈ ½ÇüÀ̸ç Áö±Ý±îÁö º¯¼ö¶ó°í ºÒ·¯¿Ô´ø °³³äÀÌ ¹Ù·Î ÀνºÅϽºÀÌ´Ù. HumanÀÇ ÇÑ ¿¹·Î kim ÀνºÅϽº°¡ ¼±¾ðµÈ °ÍÀ̸ç intÇüÀÇ ÇÑ ¿¹·Î i ÀνºÅϽº°¡ ¼±¾ðµÈ °ÍÀÌ´Ù. ŸÀÔ¿¡ ´ëÇØ ¿©·¯ °³ÀÇ ÀνºÅϽº¸¦ µ¿½Ã¿¡ ¼±¾ðÇÒ ¼ö ÀÖ´Ù.
Human kim, lee, park;
ÀÌ ¼±¾ð¿¡ ÀÇÇØ Human ŸÀÔÀÇ ÀνºÅϽº 3°³°¡ ¸Þ¸ð¸®¿¡ °¢°¢ »ý¼ºµÈ´Ù. °¢ ÀνºÅϽº´Â ¸â¹ö º¯¼ö¸¦ µû·Î °¡Á®
ÀνºÅϽºº°·Î µ¶¸³ÀûÀÎ Á¤º¸¸¦ ÀúÀåÇÒ ¼ö ÀÖ´Ù. ÀνºÅϽºÀÇ Å©±â´Â Ŭ·¡½º¿¡ ¼±¾ðµÈ ¸â¹ö º¯¼ö Å©±âÀÇ ÃÑÇÕ°ú
°°´Ù. kim, lee, parkÀº ¸ðµÎ 16¹ÙÀÌÆ®ÀÌ´Ù. °¢ ÀνºÅϽº¸¶´Ù ¼Ó¼ºÀÌ ´Þ¶ó ¸â¹ö º¯¼ö´Â µû·Î °¡ÁöÁö¸¸ µ¿ÀÛÀº °°¾Æ ¸â¹ö ÇÔ¼ö´Â ¸ðµç ÀνºÅϽº°¡ °øÀ¯ÇÑ´Ù.
ÀνºÅϽº¸¦ ´Ù¸¥ ¸»·Î °´Ã¼(Object)¶ó°íµµ ÇÑ´Ù. µÎ ¿ë¾î´Â »ç½Ç»ó °°Àº ´ë»óÀ» °¡¸®Å°Áö¸¸ »ç¿ëµÇ´Â ¹®¸ÆÀÌ Á¶±Ý ´Ù¸£´Ù. ÀνºÅϽº´Â
Ŭ·¡½º°¡ ¸Þ¸ð¸®¿¡ ±¸ÇöµÈ ½Çü¶ó´Â ÀǹÌÀÌ¸ç °´Ã¼´Â ÇÁ·Î±×·¥À» ±¸¼ºÇÏ´Â µ¶¸³ÀûÀÎ ºÎÇ°À̶ó´Â ÀǹÌÀÌ´Ù.
¶È°°Àº ¿©ÀÚ¸¦ ĪÇÏ´Â ¸»·Î ¿©¼º, ¼÷³à, ¾ÆÁܸ¶, ¼Ò³à µî ¿©·¯ °¡Áö ´Ü¾î°¡ ÀÖ°í °æ¿ì¿¡ µû¶ó ÀûÇÕÇÑ ´Ü¾î°¡
´Ù¸£´Ù. ÀνºÅϽº¿Í °´Ã¼µµ °°Àº ¶æÀÌµÇ ¹®¸Æ¿¡ µû¶ó »ç¿ëÇÏ´Â ¿ë¾î°¡ Á¶±Ý ´Ù¸¦ »ÓÀÌ´Ù. µÑ ´Ù ÆòÀÌÇÑ ´Ü¾î·Î Ç¥ÇöÇÏ¸é º¯¼öÀÌ´Ù.
½Ç¼¼°èÀÇ ¸ðµç »ç¹°Àº µ¶Æ¯ÇÑ ¼Ó¼ºÀ» °¡Áö°í °íÀ¯ÇÑ µ¿ÀÛÀ» ÇÑ´Ù. »ç¶÷Àº
À̸§, ³ªÀÌ, ¼ºº°, ÇǺλö
µîÀÇ ¼Ó¼ºÀÌ ÀÖ°í ¸»ÇÑ´Ù, »ý°¢ÇÑ´Ù, ÀÏÇÑ´Ù µîÀÇ µ¿ÀÛÀ»
ÇÒ ¼ö ÀÖ´Ù. ¼¼»óÀÇ ¸ðµç »ç¹°Àº ¼Ó¼º°ú µ¿ÀÛ µÎ °¡Áö Ư¡À» °¡Áö¸ç ÇÚµåÆùÀ̳ª ÄÄÇ»ÅÍ, ÀÚµ¿Â÷ µîÀÇ ¹°°Çµµ °íÀ¯ÀÇ ¼Ó¼º°ú µ¿ÀÛÀ» ÃßÃâÇÏ¿© Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.
Ŭ·¡½º´Â ¼Ó¼ºÀ» ¸â¹ö º¯¼ö·Î Ç¥ÇöÇÏ°í µ¿ÀÛÀ» ¸â¹ö ÇÔ¼ö·Î ±â¼úÇÏ¿© ½Ç¼¼°èÀÇ »ç¹°À» ¸ðµ¨¸µÇÑ´Ù. ³ª¹«, Ã¥, Áý, ÇÇÀÚ µîÀÇ »ç¹°Àº ¹°·ÐÀÌ°í ¿¹±Ý, ±ÇÇÑ, ÀÚ°Ý, °Ç° µî º¸ÀÌÁö ¾Ê´Â °³³äÀûÀÎ °Í±îÁö Ŭ·¡½º·Î Ç¥ÇöÇÒ ¼ö
ÀÖ´Ù. »ç¹°ÀÇ Æ¯Â¡À» ÃßÃâÇÏ¿© ¼Ó¼º°ú µ¿ÀÛÀ¸·Î Ç¥ÇöÇÏ´Â °ÍÀ» Ãß»óȶó°í ÇÑ´Ù.
¾ÕÀ¸·Î ½Ç½ÀÀ» À§ÇØ ¿©·¯ °¡Áö Ŭ·¡½º¸¦ ¸¸µé¾î º¼ °ÍÀÌ´Ù. ¿©±â¼´Â
ÀÌÈÄ ½Ç½À¿¡ »ç¿ëÇÒ ¸î °¡Áö ÀüÇüÀûÀΠŬ·¡½º¸¦ ¸¸µé¾î º¸°í ½Ç¼¼°èÀÇ »ç¹°À» ¾î¶»°Ô ¸ðµ¨¸µÇÏ´ÂÁö »ìÆ캸ÀÚ. ´ÙÀ½
Ŭ·¡½º´Â ½Ã°£À» Ç¥ÇöÇÑ´Ù. ÇÏ·ç Áß Æ¯Á¤ ½ÃÁ¡À» ³ªÅ¸³»´Â ½Ã°¢À¸·Îµµ ¾µ ¼ö ÀÖ°í °æ°úÇÑ Á¤µµ¸¦ ³ªÅ¸³»´Â
½Ã°£À¸·Îµµ ¾µ ¼ö ÀÖ´Ù.
Time |
#include <stdio.h>
class Time
{
private:
int
hour, min, sec;
public:
void
SetTime(int h, int m, int s) {
hour
= h;
min
= m;
sec
= s;
}
void
OutTime() {
printf("ÇöÀç
½Ã°£Àº %d:%d:%dÀÔ´Ï´Ù.\n", hour, min,
sec);
}
};
int main()
{
Time
now;
now.SetTime(12,
30, 40);
now.OutTime();
}
½ÇÇà°á°ú |
ÇöÀç ½Ã°£Àº 12:30:40ÀÔ´Ï´Ù. |
Ŭ·¡½º À̸§Àº TimeÀ¸·Î Áö¾ú´Ù.
½Ã°£Àº ½Ã, ºÐ, ÃÊÀÇ ¿ä¼Ò·Î ±¸¼ºµÇ´Âµ¥ °¢
¿ä¼Ò¸¦ Á¤¼öÇüÀÇ hour, min, sec ¸â¹ö º¯¼ö·Î ¼±¾ðÇÑ´Ù. ÇöÀç°ªÀ»
¼³Á¤ÇÏ´Â ±â´É°ú Ãâ·ÂÇÏ´Â µ¿ÀÛÀº °¢°¢ SetTime, OutTime ¸â¹ö ÇÔ¼ö·Î ¼±¾ðÇÑ´Ù. ¿©·¯ ¿ä¼Ò·Î ±¸¼ºµÇ´Â ½Ã°£À̶ó´Â º¹ÀâÇÑ Á¤º¸¸¦ Ŭ·¡½º·Î ¼±¾ðÇØ µÎ¸é °£ÆíÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
main¿¡¼ TimeÇüÀÇ
°´Ã¼ now¸¦ ¼±¾ðÇÏ°í SetTime ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÏ¿©
ÃʱâÈÇÏ°í OutTime ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÇöÀç ½Ã°£À» Ãâ·ÂÇß´Ù.
ÀÌ¿Ü¿¡ ½Ã°£À» Áõ°¡, °¨¼Ò ½ÃÅ°´Â µ¿ÀÛ°ú ½Ã°£³¢¸® ºñ±³ ¿¬»êÇÏ´Â µ¿ÀÛµµ ¸â¹ö ÇÔ¼ö·Î ÀÛ¼ºÇÒ
¼ö ÀÖ´Ù.
´ÙÀ½ Ŭ·¡½º´Â °ÔÀÓÀÇ ÁÖÀΰø ö¼ö¸¦ Ŭ·¡½º·Î ¸¸µç °ÍÀÌ´Ù. ¾îµåº¥Ã³
°ÔÀÓÀÇ ÁÖÀΰøÀΠö¼ö´Â »çÀ̹ö ¼¼°è¸¦ µ¹¾Æ´Ù´Ï¸ç ÈäÄ¢ÇÑ ÀûÀ» ¹«Â´Ù. ö¼ö´Â ¼ö¸¹Àº ¼Ó¼ºÀ» °¡Áö¸ç
°ÔÀÓ¼Ó¿¡¼ ´Ù¾çÇÑ µ¿ÀÛÀ» Çϴµ¥ À̸¦ ¹¾î ÇϳªÀÇ Å¬·¡½º·Î Ç¥ÇöÇÑ´Ù.
class ChulSoo
{
private:
int
x,y; //
ÇöÀç À§Ä¡
int
hp; //
ü·Â
int
shield; //
º¸È£¸·
int
level; //
·¹º§
double
exp; //
°æÇèÄ¡
Item
items[MAXITEM]; //
º¸À¯ÇÑ ¹«±âµé
public:
void
walk(); //
°È´Â´Ù.
void
jump(short height); //
Á¡ÇÁÇÑ´Ù.
void
turn(int dir); //
¹æÇâÀ» ¹Ù²Û´Ù.
BOOL
attack(int what); //
ÀûÀ» ½Å³ª°Ô °ø°ÝÇÑ´Ù.
void
defence(); //
¹æ¾îÇÑ´Ù.
BOOL
hurt(int fromwhom); //
°ø°ÝÀ» ´çÇÑ´Ù.
BOOL
die(); //
³Ê¹« ¸¹ÀÌ ¸Â¾Æ¼ Á״´Ù.
};
¾îµåº¥Ã³ °ÔÀÓÀÇ Ä³¸¯ÅÍ°¡ º¸ÆíÀûÀ¸·Î °¡Áö´Â ü·Â, °æÇèÄ¡ °°Àº ¼Ó¼ºÀº
¸â¹ö º¯¼ö·Î Ç¥ÇöÇÑ´Ù. ¾ÆÀÌÅÛÀº ¿©·¯ °³¸¦ ¼ÒÀ¯ÇÒ ¼ö ÀÖ¾î ¹è¿·Î ¼±¾ðÇß´Ù. ¸â¹ö ÇÔ¼ö´Â °ÔÀÓ ¼Ó¿¡¼ ö¼öÀÇ µ¿ÀÛÀ» Ç¥ÇöÇÑ´Ù. °È±âµµ ÇÏ°í Á¡ÇÁµµ
Çϸç Àû°ú ¸¸³ª¸é ½Î¿ì°Å³ª ¹æ¾îµµ ÇÑ´Ù. °¢ ÇÔ¼ö´Â ö¼öÀÇ µ¿ÀÛÀ» ȸ鿡 ±×·¡ÇÈÀ¸·Î ±×·Á ¹¦»çÇÑ´Ù.
ö¼ö Ŭ·¡½º¸¦ ¿Ïº®ÇÏ°Ô ¸¸µå´Â µ¥´Â ¸¹Àº ³ë·Â°ú ½Ã°£ÀÌ µéÁö¸¸ ÀÏ´Ü ¸¸µé¾îÁö¸é
ChulSoo cs; ¼±¾ð¹®À¸·Î °´Ã¼¸¦ ½±°Ô ¸¸µé ¼ö ÀÖ´Ù. Äڵ忡¼´Â ö¼öÀÇ ¼¼ºÎ ±¸Çö¿¡
´ëÇØ ´õ ½Å°æ¾µ ÇÊ¿ä ¾øÀÌ ´Ù¸¥ °´Ã¼¿ÍÀÇ °ü°è¸¸ Àß Á¤ÀÇÇÏ¸é µÈ´Ù. °ÔÀÓÀ» ¿Ï¼ºÇÏ·Á¸é ÁÖÀΰø ¿Ü¿¡µµ
¼ö¸¹Àº °´Ã¼°¡ ÇÊ¿äÇÏ´Ù. ¹«Â ÀûÀÌ ³ª¿Í¾ß Çϸç ö¼ö°¡ µ¹¾Æ´Ù´Ò Áöµµµµ ÇÊ¿äÇÏ´Ù.
Ŭ·¡½º´Â °ÔÀÓÀÇ ºÎÇ°ÀÎ °´Ã¼¸¦ Ç¥ÇöÇϸç mainÀº °´Ã¼¸¦ ¸ð¾Æ °ü°è¿Í
»óÈ£ÀÛ¿ëÀ» Á¤ÀÇÇÑ´Ù. ÀûÀÇ °ø°ÝÀ» ¹ÞÀ¸¸é ö¼öÀÇ Ã¼·ÂÀÌ ¶³¾îÁö°í ö¼ö°¡ °ø°ÝÇϸé ÀûÀÌ Á״´Ù. ºÎÇ°ÀÌ Àß ¸¸µé¾îÁ® ÀÖ´Ù¸é »óÇâ½ÄÀ¸·Î ½±°Ô Á¶¸³ÇÒ ¼ö ÀÖ°í ºÎÇ°À» ÀçÈ°¿ëÇÏ¿© ºñ½ÁÇÑ °ÔÀÓµµ ±Ý¹æ ¸¸µé ¼ö ÀÖ´Ù. ÀÌ°ÍÀÌ °´Ã¼ ÁöÇâÀÇ ÀÌÁ¡ÀÌ´Ù.
¼¿ÇÁ Å×½ºÆ®
2-2. ½Ã, ºÐ, ÃÊÀÇ ¸â¹ö¸¦ °¡Áö´Â Time
Ŭ·¡½º¸¦ Á¤ÀÇÇϵíÀÌ ³â, ¿ù, ÀÏÀ» ¸â¹ö·Î °¡Áö´Â Date Ŭ·¡½º¸¦ Á¤ÀÇÇØ º¸ÀÚ. ¿À´Ã ³¯Â¥¸¦ Ãâ·ÂÇÏ´Â ¸â¹ö ÇÔ¼öµµ
Á¤ÀÇÇ϶ó.
µ¶¸³µÈ ºÎÇ°ÀΠŬ·¡½º´Â º¸Åë º°µµÀÇ ¸ðµâ·Î ÀÛ¼ºÇϸç Ŭ·¡½º À̸§°ú °°Àº ÆÄÀϸíÀ» »ç¿ëÇÑ´Ù. Time Ŭ·¡½º¸¦ ¸¸µç´Ù¸é Time.h Çì´õ ÆÄÀÏ¿¡ Ŭ·¡½º ¼±¾ð¹®À»
ÀÛ¼ºÇÏ°í ¸â¹ö ÇÔ¼öÀÇ º»Ã¼´Â Time.cpp ±¸Çö ÆÄÀÏ¿¡ ÀÛ¼ºÇÑ´Ù.
Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¸ðµâÀº Time.h¸¦ Æ÷ÇÔÇÏ¿© Ŭ·¡½º¿¡ ´ëÇÑ Á¤º¸¸¦
ÆľÇÇÑ´Ù. Ŭ·¡½º °ü·Ã Äڵ尡 Time.h, Time.cpp¿¡
ÀÛ¼ºµÇ¾î ÀÖÀ¸¹Ç·Î ´Ù¸¥ ÇÁ·ÎÁ§Æ®¿¡ Àç»ç¿ëÇÏ·Á¸é µÎ ÆÄÀÏÀ» °¡Á®°¡ Æ÷ÇÔ½ÃÅ°¸é µÈ´Ù.
½ÇÀü¿¡´Â °¡±ÞÀû ÀÌ °üÇà´ë·Î Ŭ·¡½ºº°·Î ¸ðµâÀ» ¸¸µå´Â °ÍÀÌ ÄÚµå °ü¸® ¹× ÀçÈ°¿ë¿¡ À¯¸®ÇÏ´Ù. ¸ðµâÀ» Àß°Ô ³ª´©¸é ½Ç½ÀÀÌ ¹ø°Å·Ó°í Äڵ带 Àб⵵ ¾î·Á¿ö ÀÌ Ã¥¿¡¼´Â ÇнÀ ÆíÀÇ»ó ¸ÞÀÎ ÆÄÀÏ¿¡ ¼±¾ð°ú ±¸ÇöÀ»
´Ù Çϱâ·Î ÇÑ´Ù.
¼¿ÇÁ Å×½ºÆ®
2-1
public ¿µ¿ª¿¡ ´ÙÀ½ ¸â¹ö ÇÔ¼ö¸¦ Ãß°¡ÇÑ´Ù. ¹®ÀÚ¿ °ü·Ã ÇÔ¼ö¸¦ »ç¿ëÇϹǷΠstring.h¸¦ Æ÷ÇÔÇÑ´Ù.
void setName(const char *newName) {
if
(strlen(newName) < 12) {
strcpy(name,
newName);
}
}
Àμö·Î Àü´ÞµÈ newName À̸§ÀÇ ±æÀÌ°¡ 12ÀÚ ¹Ì¸¸ÀÏ °æ¿ì¿¡¸¸ nameÀ¸·Î º¹»çÇÏ°í 12ÀÚ ÀÌ»óÀÌ¸é ¹«½ÃÇÑ´Ù. ³ÎÁ¾·á ¹®ÀÚºÐÀ» °í·ÁÇØ¾ß ÇϹǷΠÃÖ´ë 11ÀÚ±îÁö¸¸ ÀúÀåÇÒ ¼ö ÀÖ´Ù.
2-2
#include <stdio.h>
class Date
{
private:
int
year, month, day;
public:
void
SetDate(int y, int m, int d) {
year
= y;
month
= m;
day
= d;
}
void
OutDate() {
printf("¿À´ÃÀº %d³â %d¿ù %dÀÏÀÔ´Ï´Ù.\n", year, month, day);
}
};
int main()
{
Date
today;
today.SetDate(2018,
6, 29);
today.OutDate();
}
³â, ¿ù, ÀÏÀ» °¢°¢ year, month, day ¸â¹ö·Î ¼±¾ðÇÑ´Ù. SetDate ÇÔ¼ö·Î
³¯Â¥¸¦ ¼³Á¤ÇÏ°í OutDate ÇÔ¼ö·Î ÇöÀç ³¯Â¥¸¦ Ãâ·ÂÇÑ´Ù.
¿¬½À ¹®Á¦
1. ¸â¹ö ÇÔ¼öÀÇ Á¤ÀÇ À§Ä¡¿Í ÀζóÀÎ ¼Ó¼º¿¡ ´ëÇÑ ¼³¸íÀ¸·Î ¿ÇÀº °ÍÀº?
¨ç Ŭ·¡½º ³»ºÎ¿¡ Á¤ÀÇÇÏ¸é ¹«Á¶°Ç ÀζóÀÎ ¼Ó¼ºÀ» °¡Áø´Ù.
¨è Ŭ·¡½º ¿ÜºÎ¿¡ Á¤ÀÇÇÏ¸é ¹«Á¶°Ç ÀζóÀÎÀÌ ¾Æ´Ï´Ù.
¨é ¿ÜºÎ¿¡ Á¤ÀÇÇÏ´õ¶óµµ inline Å°¿öµå¸¦ ÁöÁ¤ÇÏ¸é ¹«Á¶°Ç ÀζóÀÎ
¼Ó¼ºÀ» °¡Áø´Ù.
¨ê ³»ºÎ¿¡ Á¤ÀÇÇÏ´õ¶óµµ inline Å°¿öµå¸¦ »©¸é ÀÏ¹Ý ÇÔ¼ö°¡ µÈ´Ù.
2. ±¸Á¶Ã¼¿Í Ŭ·¡½ºÀÇ À¯ÀÏÇÑ Â÷ÀÌÁ¡Àº ¹«¾ùÀΰ¡?
¨ç ¸â¹ö ÇÔ¼öÀÇ Æ÷ÇÔ ¿©ºÎ
¨è µðÆúÆ® ¾×¼¼½º ÁöÁ¤ÀÚ
¨é »ý¼ºÀÚ, Æı«ÀÚ¿¡ ÀÇÇÑ ÀÚµ¿ÈµÈ ÃʱâÈ¿Í Á¤¸®
¨ê ´ÙÇü¼º Áö¿ø ¿©ºÎ
3. ½Ã°£À» Ç¥ÇöÇÏ´Â Time Ŭ·¡½º°¡
ÀÖ´Ù. sizeof ¿¬»êÀÚ·Î ÀÌ Å¬·¡½ºÀÇ °´Ã¼ Å©±â¸¦ Á¶»çÇÏ¸é ¾ó¸¶Àΰ¡?
class Time
{
private:
int
hour, min, sec;
public:
void
SetTime(int h, int m, int s) {
hour
= h;
min
= m;
sec
= s;
}
void
OutTime() {
printf("ÇöÀç
½Ã°£Àº %d:%d:%dÀÔ´Ï´Ù.\n", hour, min,
sec);
}
};
4. ÀνºÅϽº¿Í °´Ã¼´Â ¾î¶»°Ô ´Ù¸¥°¡?
5.´ÙÀ½ Áß ¾×¼¼½º ÁöÁ¤ÀÚ°¡ ¾Æ´Ñ °ÍÀº
¨ç private ¨è public ¨é protected ¨ê pointer