[C++]_S16-객체지향의_시작

신치우·2025년 2월 22일

CPP

목록 보기
44/62

절차 지향은 만들어진 모든 함수를 순서대로 타고 간다면
객체 지향은 하나하나의 object가 주를 이룬다고 보면된다.

#include <iostream>
using namespace std;

// 오늘의 주제 : 객체지향의 시작

// 절차(procedural) 지향 프로그래밍
// - procedure = 함수
// 만들어진 함수에 따라 순서대로 움직인다

// 데이터 + 가공(로직, 동작)

// 객체지향 프로그래밍 = 객체
// 객체란? 플레이어, 몬스터, GameRoom

// Knight를 설계해보자
// - 속성 (데이터) : hp, attack, position(y, x)
// - 기능 (동작) : Move, attack, Die

// class는 일종의 설계도
class Knight // knight에 대한 설계도
{
public:
	// 멤버 함수
	void Move(int y, int x);
	void Attack();
	void Die()
	{
		hp = 0;
		cout << "Die" << endl;
	}


public:
	// 멤버 변수
	int hp;
	int attack;
	int posY;
	int posX;
};

void Knight::Move(int y, int x)
{
	posY = y;
	posX = x;
	cout << "Move" << endl;
}

void Knight::Attack()
{
	cout << "Attack : " << attack << endl;
}

// Instantiate 객체를 만든다!
int main()
{
	Knight k1;
	k1.hp = 100;
	k1.attack = 10;
	k1.posY = 0;
	k1.posX = 0;

	Knight k2;
	k2.hp = 80;
	k2.attack = 5;
	k2.posY = 1;
	k2.posY = 1;

	k1.Move(2, 2);
	k1.Attack();
	k1.Die();

	return 0;
}
profile
https://shin8037.tistory.com/

0개의 댓글