C2694 'Child::~Child(void) throw(Error)': 재정의 가상 함수에 지정된 예외가 기본 클래스 가상 멤버 함수 'Base::~Base(void)'보다 덜 제한적입니다.
비주얼 스튜디오 2008에서 2015로 마이그레이션 중 아래와 같은 에러가 있었습니다.
C2694 'Child::~Child(void) throw(Error)': 재정의 가상 함수에 지정된 예외가 기본 클래스 가상 멤버 함수 'Base::~Base(void)'보다 덜 제한적입니다.
관련 에러만 30개 정도 있었는데요, 아래와 같은 구성이었습니다.
class Base
{
virtual ~Base();
}
class Child : public Base
{
virtual ~Child() throw(Error);
}
자식에는 예외를 지정했는데 부모딴에서 예외 지정이 안 되어 있었습니다. 또는 그 반대 상황이어도 발생할 듯 하네요. 아무튼 아래와 같이 수정해주면 됩니다.
class Base
{
virtual ~Base() throw(Error);
}
class Child : public Base
{
virtual ~Child() throw(Error);
}
https://msdn.microsoft.com/ko-kr/library/e4x95xf8.aspx
C2694 'Child::~Child(void) throw(Error)': 재정의 가상 함수에 지정된 예외가 기본 클래스 가상 멤버 함수 'Base::~Base(void)'보다 덜 제한적입니다.
관련 에러만 30개 정도 있었는데요, 아래와 같은 구성이었습니다.
class Base
{
virtual ~Base();
}
class Child : public Base
{
virtual ~Child() throw(Error);
}
자식에는 예외를 지정했는데 부모딴에서 예외 지정이 안 되어 있었습니다. 또는 그 반대 상황이어도 발생할 듯 하네요. 아무튼 아래와 같이 수정해주면 됩니다.
class Base
{
virtual ~Base() throw(Error);
}
class Child : public Base
{
virtual ~Child() throw(Error);
}
댓글
댓글 쓰기