class Knight // 클래스 Knight 선언.
{
public: // 행위 선언 하는 곳.
// class Knight의 행위들 = 멤버 함수.
void Move(int y, int x);
void Attack();
void Die(int hp)
{
hp = 0;
cout << "Die" << endl;
}
public: // 속성 선언 하는 곳.
// class Knight의 속성들 = 멤버 변수.
int hp;
int damage;
int positionY;
int positionX;
};
// class Knight의 멤버 함수 Move 정의.
void Knight::Move(int y, int x) // 함수 이름에 Knight:: 를 붙여준다.
{
positionY = y;
positionX = x;
cout << "Move" << endl;
}
// class Knight의 멤버 함수 Attack 정의.
void Knight::Attack() // 함수 이름에 Knight:: 를 붙여준다.
{
cout << "Damage : " << damage << endl;
}
// main 함수.
int main()
{
// 객체 생성 (Instantiate)
Knight k1; // Knight 클래스를 사용하는 객체 k1 생성.
k1.hp = 100; // 객체 k1의 멤버 변수 hp 초기화.
k1.damage = 10; // 객체 k1의 멤버 변수 damage 초기화.
k1.positionY = 0; // 객체 k1의 멤버 변수 positionY 초기화.
k1.positionX = 0; // 객체 k1의 멤버 변수 positionX 초기화.
Knight k2; // Knight 클래스를 사용하는 객체 k2 생성.
k2.hp = 80; // 객체 k2의 멤버 변수 hp 초기화.
k2.damage = 5; // 객체 k2의 멤버 변수 damage 초기화.
k2.positionY = 10; // 객체 k2의 멤버 변수 positionY 초기화.
k2.positionX = 10; // 객체 k2의 멤버 변수 positionX 초기화.
k1.Move(2, 2); // 객체 k1의 멤버 함수 Move 실행.
k1.Attack(); // 객체 k1의 멤버 함수 Attack 실행.
k1.Die(k1.hp); // 객체 k1의 멤버 함수 Die 실행.
return 0;
}
코드 재사용이 용이
유지보수가 쉬움
대형 프로젝트에 적합