2-2.Ŭ·¡½º

1.class

±¸Á¶Ã¼´Â ´Ù¾çÇÑ Å¸ÀÔÀÇ º¯¼ö¸¦ ¸ð¾Æ ³õÀº °ÍÀε¥ 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À¸·Î ÁöÁ¤Çß´Ù. È®ÀåµÈ ±¸Á¶Ã¼´Â Ŭ·¡½º¿Í »ç½Ç»ó °°Áö¸¸ ¸â¹ö ÇÔ¼ö¸¦ °¡Áú ¶§´Â Ŭ·¡½º·Î ¼±¾ðÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ±¸Á¶Ã¼´Â º¯¼öÀÇ ÁýÇÕÀÏ ¶§¸¸ »ç¿ëÇÑ´Ù.

2.Ŭ·¡½º´Â ŸÀÔÀÌ´Ù

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 ¹®¹ýÀÌ Å¬·¡½º¿¡ ´ëÇؼ­µµ ÀÏ°üµÇ°Ô Àû¿ëµÇ¾î ÀÌÂ÷ ¹è¿­À̳ª ÀÌÁß Æ÷ÀÎÅ͵µ ¼±¾ðÇÒ ¼ö ÀÖ´Ù. Ŭ·¡½º°¡ ÇϳªÀÇ Å¸ÀÔÀ̱⠶§¹®ÀÌ´Ù.

3.ÀνºÅϽº

Ŭ·¡½º´Â ¾î¶² ¸â¹ö°¡ Æ÷ÇԵǾî ÀÖ´ÂÁö ÄÄÆÄÀÏ·¯¿¡°Ô ¾Ë¸®´Â ŸÀÔ ¼±¾ðÀÏ »Ó ±× ÀÚü°¡ Á¤º¸¸¦ ÀúÀåÇÏ´Â º¯¼ö´Â ¾Æ´Ï´Ù. Á¤º¸¸¦ ÀúÀåÇÏ·Á¸é Ŭ·¡½º ŸÀÔÀÇ º¯¼ö¸¦ ¼±¾ðÇØ¾ß ÇÑ´Ù.

 

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)¶ó°íµµ ÇÑ´Ù. µÎ ¿ë¾î´Â »ç½Ç»ó °°Àº ´ë»óÀ» °¡¸®Å°Áö¸¸ »ç¿ëµÇ´Â ¹®¸ÆÀÌ Á¶±Ý ´Ù¸£´Ù. ÀνºÅϽº´Â Ŭ·¡½º°¡ ¸Þ¸ð¸®¿¡ ±¸ÇöµÈ ½Çü¶ó´Â ÀǹÌÀÌ¸ç °´Ã¼´Â ÇÁ·Î±×·¥À» ±¸¼ºÇÏ´Â µ¶¸³ÀûÀÎ ºÎÇ°À̶ó´Â ÀǹÌÀÌ´Ù.

¶È°°Àº ¿©ÀÚ¸¦ ĪÇÏ´Â ¸»·Î ¿©¼º, ¼÷³à, ¾ÆÁܸ¶, ¼Ò³à µî ¿©·¯ °¡Áö ´Ü¾î°¡ ÀÖ°í °æ¿ì¿¡ µû¶ó ÀûÇÕÇÑ ´Ü¾î°¡ ´Ù¸£´Ù. ÀνºÅϽº¿Í °´Ã¼µµ °°Àº ¶æÀÌµÇ ¹®¸Æ¿¡ µû¶ó »ç¿ëÇÏ´Â ¿ë¾î°¡ Á¶±Ý ´Ù¸¦ »ÓÀÌ´Ù. µÑ ´Ù ÆòÀÌÇÑ ´Ü¾î·Î Ç¥ÇöÇÏ¸é º¯¼öÀÌ´Ù.

4.Ŭ·¡½ºÀÇ ¿¹

½Ç¼¼°èÀÇ ¸ðµç »ç¹°Àº µ¶Æ¯ÇÑ ¼Ó¼ºÀ» °¡Áö°í °íÀ¯ÇÑ µ¿ÀÛÀ» ÇÑ´Ù. »ç¶÷Àº À̸§, ³ªÀÌ, ¼ºº°, ÇǺλö µîÀÇ ¼Ó¼ºÀÌ ÀÖ°í ¸»ÇÑ´Ù, »ý°¢ÇÑ´Ù, ÀÏÇÑ´Ù µîÀÇ µ¿ÀÛÀ» ÇÒ ¼ö ÀÖ´Ù. ¼¼»óÀÇ ¸ðµç »ç¹°Àº ¼Ó¼º°ú µ¿ÀÛ µÎ °¡Áö Ư¡À» °¡Áö¸ç ÇÚµåÆùÀ̳ª ÄÄÇ»ÅÍ, ÀÚµ¿Â÷ µîÀÇ ¹°°Çµµ °íÀ¯ÀÇ ¼Ó¼º°ú µ¿ÀÛÀ» ÃßÃâÇÏ¿© Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

Ŭ·¡½º´Â ¼Ó¼ºÀ» ¸â¹ö º¯¼ö·Î Ç¥ÇöÇÏ°í µ¿ÀÛÀ» ¸â¹ö ÇÔ¼ö·Î ±â¼úÇÏ¿© ½Ç¼¼°èÀÇ »ç¹°À» ¸ðµ¨¸µÇÑ´Ù. ³ª¹«, Ã¥, Áý, ÇÇÀÚ µîÀÇ »ç¹°Àº ¹°·ÐÀÌ°í ¿¹±Ý, ±ÇÇÑ, ÀÚ°Ý, °Ç°­ µî º¸ÀÌÁö ¾Ê´Â °³³äÀûÀÎ °Í±îÁö Ŭ·¡½º·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. »ç¹°ÀÇ Æ¯Â¡À» ÃßÃâÇÏ¿© ¼Ó¼º°ú µ¿ÀÛÀ¸·Î Ç¥ÇöÇÏ´Â °ÍÀ» Ãß»óÈ­¶ó°í ÇÑ´Ù.

¾ÕÀ¸·Î ½Ç½ÀÀ» À§ÇØ ¿©·¯ °¡Áö Ŭ·¡½º¸¦ ¸¸µé¾î º¼ °ÍÀÌ´Ù. ¿©±â¼­´Â ÀÌÈÄ ½Ç½À¿¡ »ç¿ëÇÒ ¸î °¡Áö ÀüÇüÀûÀΠŬ·¡½º¸¦ ¸¸µé¾î º¸°í ½Ç¼¼°èÀÇ »ç¹°À» ¾î¶»°Ô ¸ðµ¨¸µÇÏ´ÂÁö »ìÆ캸ÀÚ. ´ÙÀ½ Ŭ·¡½º´Â ½Ã°£À» Ç¥ÇöÇÑ´Ù. ÇÏ·ç Áß Æ¯Á¤ ½ÃÁ¡À» ³ªÅ¸³»´Â ½Ã°¢À¸·Îµµ ¾µ ¼ö ÀÖ°í °æ°úÇÑ Á¤µµ¸¦ ³ªÅ¸³»´Â ½Ã°£À¸·Îµµ ¾µ ¼ö ÀÖ´Ù.

 

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 Ŭ·¡½º¸¦ Á¤ÀÇÇØ º¸ÀÚ. ¿À´Ã ³¯Â¥¸¦ Ãâ·ÂÇÏ´Â ¸â¹ö ÇÔ¼öµµ Á¤ÀÇÇ϶ó.

5.Ŭ·¡½º ¸ðµâ

µ¶¸³µÈ ºÎÇ°ÀΠŬ·¡½º´Â º¸Åë º°µµÀÇ ¸ðµâ·Î ÀÛ¼ºÇϸç Ŭ·¡½º À̸§°ú °°Àº ÆÄÀϸíÀ» »ç¿ëÇÑ´Ù. 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