ìƒ�ì†�ì—� 대해서 설명해 ë³´ê³ ìž� 합니다. 길ë�”ë�¼ë�„ ë��까지 ì�½ì–´ë´�주세요
ë‹¹ì‹ ì�€ 지금 StarCraftë�¼ëŠ” 게임ì�˜ ì œìž‘ìž�를 맡게 ë�˜ì—ˆë‹¤.(ê°€ì •ìž…ë‹ˆë‹¤.-_-ìœ ì¹˜í•˜ë�”ë�¼ë�„ 들어주세요.) ë¨¼ì € 마린과 파ì�´ì–´ë±ƒì�´ë�¼ëŠ” ìœ ë‹ˆíŠ¸ê°€ 기íš�ë�˜ì—ˆë‹¤.
ë‹¹ì‹ ì�€ 지금 StarCraftë�¼ëŠ” 게임ì�˜ ì œìž‘ìž�를 맡게 ë�˜ì—ˆë‹¤.(ê°€ì •ìž…ë‹ˆë‹¤.-_-ìœ ì¹˜í•˜ë�”ë�¼ë�„ 들어주세요.) ë¨¼ì € 마린과 파ì�´ì–´ë±ƒì�´ë�¼ëŠ” ìœ ë‹ˆíŠ¸ê°€ 기íš�ë�˜ì—ˆë‹¤.
~cpp
class CMarine // 마린ì�„ ì •ì�˜í•œ í�´ëž˜ìФ
{
private:
int m_Attack;
int m_Defence;
int m_HP;
public:
void Attack() { // 마린 공격!! }
};
class CFirebat // 파ì�´ì–´ë±ƒì�„ ì •ì�˜í•œ í�´ëž˜ìФ
{
private:
int m_Attack;
int m_Defence;
int m_HP;
public:
void Attack() { // 파�어뱃 공격!! }
};
ì�¼ë‹¨ 완성ì�´ë‹¤. 기ì�œë§ˆì�Œìœ¼ë¡œ ì œì¶œì�„ 했다.
다ì�Œë‚ ë¬¸ì œì �ì�´ 발견ë�˜ì—ˆë‹¤. 마린과 파ì�´ì–´ë±ƒìœ¼ë¡œ 부대를 구성하여 ë°°ì—´ì—� ì €ìž¥í•˜ë ¤ê³ í•˜ì˜€ëŠ”ë�° ë‘�ê°œì�˜ í�´ëž˜ìŠ¤ê°€ 틀리기 때문ì—� 한개ì�˜ 배열로는 í�¬í•¨í• 수가 없었다.
~cpp CMarine Force[12]; // ì�´ë ‡ê²Œ 하면 부대안ì—�는 마린밖ì—� 넣지 못한다. CFirebat Force[12]; // ì�´ë ‡ê²Œ 하면 부대안ì—�는 파ì�´ì–´ë±ƒë°–ì—� 넣지 못한다.
ì•„.. ì�´ ë¬¸ì œë¥¼ 어떻게 하면 좋ì�„까~? ì�´ëŸ´ë•Œ ì‚¬ìš©í• ìˆ˜ 있는 스킬ì�´ 바로 ìƒ�ì†�(Inheritance)ì�´ë‹¤.
ì�¼ë‹¨ 파ì�´ì–´ë±ƒë�„ ì•„ë‹ˆê³ ë§ˆë¦°ë�„ 아닌 ìœ ë‹ˆíŠ¸ë¥¼ 만들어보ìž�
ì�¼ë‹¨ 파ì�´ì–´ë±ƒë�„ ì•„ë‹ˆê³ ë§ˆë¦°ë�„ 아닌 ìœ ë‹ˆíŠ¸ë¥¼ 만들어보ìž�
~cpp
class CUnit
{
protected: // protected를 사용한 ì�´ìœ 는 ìƒ�ì†�ë°›ì�€ í�´ëž˜ìФì—�서ë�„ ì�´ 멤버들ì�„ ì‚¬ìš©í• ìˆ˜ 있게 하기 위함ì�´ë‹¤.
int m_Attack;
int m_Defence;
int m_HP;
public:
void Attack();
};
마린과 파ì�´ì–´ë±ƒì�€ ì�´ ìœ ë‹ˆíŠ¸ë�¼ëŠ” í�´ëž˜ìŠ¤ë¥¼ ìƒ�ì†� 받으면 ë�œë‹¤.
~cpp
class CMarine : public CUnit // ì�´ë ‡ê²Œ ìƒ�ì†�받는다.
{
public:
void Attack() { // 마린 공격! }
};
class CFirebat : public CUnit
{
public:
void Attack() { // 파�어뱃 공격! }
};
ì�´ë ‡ê²Œ 한 후 부대를 만들어보ìž�
~cpp CUnit Force1[12]; // ì�´ë ‡ê²Œ 하면 마린ë�„, 파ì�´ì–´ë±ƒë�„ 부대안ì—� 들어갈 수 있다.
ì�´ë ‡ê²Œ 첫번째 임무를 완성하였다.
삼�사CppStudy










