|
다중상속을 이용해 코딩을 하다보니 두 가지 문제가 생겼습니다.
하나는 멤버가 전혀 없는 빈 클래스를 다중 상속 받은 경우 알 수 없는 에러가 났고
또 하나는 순수 가상 함수를 가진 클래스를 다중 상속 받은 경우 그 함수를 아래 클래스에서
재정의 했는데도 런타임에서 pure virtual function call에러가 나더군요.
예를들어
class TNormalClass
{
....
}
class TEmptyClass
{
// nothing here
}
class TPureVirtualMethodClass
{
virtual bool __fastcall CanDeleteSomeMember() = 0;
}
// 컴파일시 알 수 없는 오류코드가 나는 클래스
class TUnknownErrorClass : public TNormalClass, public TEmptyClass { ... }
// 런타임시 pure virtual function call 에러가 나는 클래스
class TPureVirtualFunctionCallErrorClass : public TNormalClass, public TEmptyClass
{
virtual bool __fastcall CanDeleteSomeMember() { return true; }
}
TPureVirtualFunctionCallErrorClass ErrorClass;
ErrorClass.CanDeleteSomeMember() => ERROR!!
혹시 이것에 대해 아시는분 계시지요?
|