CUnit를 상속받는 CSkyBox를 만들었는데, 다음과 같이 에러가 발생.
: error C2259: 'CSkyBox' : 추상 클래스를 인스턴스화할 수 없습니다. 1> 다음 멤버가 원인입니다. 1> 'int CUnit::Draw(void)' : abstract입니다.
추상 클래스를 인스턴스화 할 수 없다고 하는데... 구글에 쳐보고, msdn링크를 따라가니 답이 나온다. CUnit::Draw(void) 로 인자가 없는데, 상속받는 CSkyBox::Draw(dTime = 0) 이었던것. 이럴 경우엔 msdn에서는 여러개의 함수명(Func1, Func2 ...)으로 만들라고 친절하게 가르쳐준다.
하지만, 이런 경우말고도 다른 경우도 있는듯하니 msdn 링크를 걸어둠...
class CUnit { ... virtual int Draw(void) = 0; }; ... class CSkyBox : public CUnit { ... int Draw(float dTime = 0); // 상속받는 함수의 인자와 다르다!! error C2259 };
http://msdn.microsoft.com/ko-kr/library/zxt206sk(VS.80).aspx
