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

Posted by 극악해골
TAG ,