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

김상현님의 프로필 이미지
김상현

작성한 질문수

C개발자를 위한 최소한의 C++

예외 클래스

예외 클래스에서 catch 안의 데이터형이 참조자인 이유

해결된 질문

작성

·

279

0

안녕하세요. 강의 잘 보고 있습니다.

강의를 듣다가 궁금한 것이 생겨서 질문 드립니다.

 

catch(MyException &exp)
{
// 생략
}

이 강의 예제에서 catch의 예외 데이터형에 클래스 참조자를 받도록 하였는데 만약 아래처럼 참조자를 사용하지 않으면 복사생성이 되나요?

catch(MyException exp)
{
// 생략
}

 

답변 1

2

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

네, 맞습니다. 복사 생성과 함께 불필요한 객체가 하나 더 생겨 상대적으로 효율이 떨어진다 하겠습니다. 함수의 매개변수가 class라면 일단 참조형식으로 만드는 것이 정답입니다. 물론 예외처리에서도 동일합니다. 참고하시기 바랍니다. 😄

김상현님의 프로필 이미지
김상현

작성한 질문수

질문하기