저는 몇 년 전에 텍스트 기반 RPG 게임을 작성하여 객체 지향 프로그래밍 클래스에서 배운 것을 기억하기 위해 노력했습니다. 나는 그 일을 끝내기를 바라고 있으며 나는 너무 걱정하지 않는다. 난 그냥 프로그램을 작성하는 법을 다시 배우고 싶다.OOP의 멤버와 서브 클래스
함수, 데이터 유형 및 클래스가 C++에서 작동하는 방법의 기본 사항을 기억하고 나서 다음 코드를 작성했습니다.
class Character
{
string Name;
public:
Character()
{
Name = "Charname";
}
string GetName(){return Name;}
void SetName(string sName){Name=sName;}
};
이제 캐릭터에 경주가 있기를 바랍니다. 첫 번째 아이디어는 허용 된 레이스마다 하나씩 Character 클래스의 하위 클래스를 만드는 것이 었습니다. 이것은 나에게 객체 지향 프로그래밍에서 할 일을 좋아하는 것 같습니다. 그러나 그것이 어떻게 작동하는지 생각하기 시작했습니다. "톰이 인간이라면 클라라는 오크이고 톰과 클라라는 결혼하려고 시도하고 오류 메시지를 전합니다."라고 말할 수 있기를 바란다. 아마도 인간과 오크가 다른 일을하는 데있어 다른 방법을 사용하기를 바랍니다.
전적으로 나는 레이스를 캐릭터의 회원 인 (나는 속성으로 이해함) 인 것처럼 취급하고, 전자에서는 레이스가 마치 서브 클래스.
인간이 Character의 하위 클래스 인 경우 전자가 가능합니까? 즉, 객체가 어떤 클래스에 있는지 알 수 있습니까?
내가해야하는 이유는 무엇입니까?
http://en.wikipedia.org/wiki/Virtual_function 서브 클래 싱과 함께 가상 함수가 아마도 당신이 찾고있는 것일 것입니다. 'getRace()'또는 이와 유사한 메소드를 사용하여 각 클래스에 대해 적절하게 정의 할 수 있습니다. – cactus1