클래스의 상속




 //콘솔 프로그래밍

#include <iostream>


// 클래스 상속

// 코드 중복이 발생할 때 상속을 사용한다

// 코드가 중복이 될때

// 1. 함수로 묶는다

// 2. 클래스로 묶는다

// 3. #define

//




// 클래스 내부에 기본적으로는 private

// 외부에서 접근하기 위해서 getter setter(개념)를 쓰기 시작함

// 접근자 함수를 만들어서 함수 내부에서만 접근 가능하여 사용한다



class Actor

{

public:

float x;

float y;


public:

Actor(float x, float y)

{

this->x = x;

this->y = y;

}


void Move(float x, float y)

{

this->x += x;

this->y += y;

}

};



// Actor 부모 상위 클래스를 상속한다

// 데이터 + 기능을 물려 받는다

// 클래스 내부에 중복이 발생하면??

//


class Player : public Actor

//class Player : public Actor, , , ,  다중 상속 - 왠만하면 쓰지마 ㅋㅋ

//JAVA나 C#에서는 다중 상속 안된다

{

public:

const char* name;

//float x;

//float y;


Player(const char* name)

: Actor(0.0f, 0.0f)

{

x = 0.0f;

y = 0.0f;

this->name = name;

}


//void Move(float x, float y)

//{

// this->x += x;

// this->y += y;

//}

void PrintName()

{

std::cout << name << std::endl;

}

};


int main()

{

Actor actor = Actor(0.0f, 0.0f);

actor.Move(3.0f, 2.0f);

actor.x = 0;


Player player = Player("Player");

player.PrintName();

player.Move(3, 3);


system("pause");

}





0 comments:

댓글 쓰기