나는 게임을 만들고있어. 나는 4 개의 적 유형을 가질 계획이다. 나는 이미 그들 중 한 명을위한 수업을 만들었습니다.다형성 C++에서이 클래스를 구현하려면 어떻게해야합니까?
나는 C에 새로 온 ++와 나는 항상 다형성 언제 어떻게 그것을 사용하는 방법에 대해 혼란스러워했다.
은 내가 적의 모든 클래스 4의 거점 역할을하는 클래스를 만들 수있는 방법을 알 필요가있다.
나는 OOP를 사용하여, 장점 중 하나가 적은 코드가 효율적 의미하는 사용되는 것을 알고있다. 저는 정말로 당신이 나를 위해서 전체 클래스를 코딩 할 것을 요구하지 않고 단지이 상황에서 어떻게 다형성을 사용할 수 있을지를 묻습니다. 여기에 4 개의 적 클래스 중 1 개가 있습니다. (다형성이 없으면 모두 똑같이 나타납니다. 변경되는 유일한 것은 chanceOfLoss
변수입니다). 다음
class Punk
{
public:
Punk(Player player)
{
chanceOfLoss = 50;
this->player = player;
}
bool Fight()
{
chanceOfWin = chanceOfLoss + player.GetWeapon();
randNum = 1 + rand() % 100;
if (randNum <= chanceOfWin)
{
return true;
}
return false;
}
private:
Player player;
int chanceOfLoss;
int randNum;
int chanceOfWin;
};
를 공유, 당신은 유형 계층을 사용할 수 없습니다. 적 유형이 다르게 행동하면 유형 계층 구조를 사용하십시오. – nosid
nosid 주석에 공감 :이 경우에는 상속을 사용하지 말고'chanceOfLoss'에 setter와 getter를 추가하십시오. – Synxis
여기 핵심 OOP 원칙을 혼동스럽게 생각한다고 생각합니다. [다형성 (Polymorphism)] C++에서 [1]은 구현보다는 추상화를 프로그래밍 할 수있는 기능을 제공합니다. [상속] [2]는 여러 클래스에 공통된 기능을 작성할 수있는 기능을 제공합니다. 다음 질문 [link] [3]을 참조하십시오. [1] : http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming [2] : http://en.wikipedia.org/wiki/Inheritance_%28object-oriented_programming%29 [3] : http://stackoverflow.com/questions/10973949/difference-between-inheritance-and-polymorphism –