강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

오원택님의 프로필 이미지
오원택

작성한 질문수

홍정모의 따라하며 배우는 C++

14.3 예외 클래스와 상속

14-2장에서 말씀하신 엄격함이 상속부분에서는 완화된건가요?

작성

·

227

2

14-2장에서 throw -1을 int 로 double로 캐치할때는 안된다 하셨고 이것은 엄격함때문이라 하셨는데 상속구조에서 base가 아닌 derived 를 받는것도 엄격함으로 구분될줄 알았지만 derived를 catch한다해도 base가 들어오면 catch가 되는 것을 보아 상속구조에서는 엄격함이 완화가 된건가요?

퀴즈

C++ 예외 처리에서 throw된 예외 객체의 타입과 이를 받는 catch 블록의 매개변수 타입 관계는 어떠해야 할까요?

자동 형변환이 허용됩니다.

엄격하게 일치해야 합니다.

throw 타입은 catch 타입의 기본 클래스여야 합니다.

catch 타입은 throw 타입의 상위 포인터 타입이어야 합니다.

답변 3

1

홍정모님의 프로필 이미지
홍정모
지식공유자

표준을 보시면 어떨까요? https://github.com/cplusplus/draft/blob/master/papers/n4820.pdf

이 파일의 14.4에 상속된 클래스들의 예제가 나옵니다.

1

오원택님의 프로필 이미지
오원택
질문자

상속이 아닌 클래스를 각각 A B 따로하면 각자 맞는부분에 들어가는데 혹시 선생님께서 질문의 의도가 어떤거였는지 알려주실 수 있나요? 제가 놓치는게 있는거라면 알려주시면 감사하겠습니다.

1

홍정모님의 프로필 이미지
홍정모
지식공유자

좋은 질문이네요. 상속 관계가 아닌 서로 다른 두 개의 클래스에 대해서는 어떻게 작동하나요?

오원택님의 프로필 이미지
오원택

작성한 질문수

질문하기