객체지향 기초

이승덱·2021년 7월 21일

CPP

목록 보기
27/70
#include <iostream>

#include<iomanip>

using namespace std;

//객체지향 프로그래밍

//지금까지 해온것 -> 절차(Procedural)지향 프로그래밍

//- procedure = 함수

//객체란? -게임 속에 존재하는 모든 오브젝트

//Knight를 설계해보자

//- 속성(데이터): hp, attack, position(y, x) 

//- 기능(동작): Move, Attack, Die

//class는 일종의 설계도이다.

class Knight {

public:

 //멤버 함수(메모리에 잡혀있지 않음)

 void Move(int y, int x);

 void Attack();

 void Die();

public:

 //멤버 변수(구조체와 동일하게 메모리에 잡혀있음)

 int hp;

 int attack;

 int posY;

 int posX;

};

void Knight::Move(int y, int x){

 cout << "Move " <<"x: "<<x<<" y: "<<y<< endl;

}

void Knight::Attack(){

 cout << "Attack " << attack << endl;

}

void Knight::Die() {

 hp = 0;

 cout << "Die" << endl;

}

//Instantiate 객체를 만든다!

int main()

{

 Knight k1;

 k1.hp = 100;

 k1.attack = 10;

 k1.posY = 0;

 k1.posY = 0;

 Knight k2;

 k2.hp = 80;

 k2.attack = 5;

 k2.posY = 1;

 k2.posY = 1;

 //k1. 을 사용하므로서 함수에 포인터를 넘겨준 것처럼 사용 가능함

 //어셈블리어로 볼 경우 포인터로 넘겨주거나 멤버함수를 사용하거나 거의 동일하게 처리함

 k1.Move(2, 2);

 k1.Attack();

 k1.Die();

}
profile
공부 기록용 블로그입니다

0개의 댓글