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

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.