함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자

Bogoomi·2022년 6월 14일
0

EffectiveC++

목록 보기
7/24

항목21 - 함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자

요약
항목20에서 '참조에 의한 전달'이 좋아보여서 값에 의한 전달 함수에서 있지도 않은 참조를 반환하지말자

매개변수가 참조자이고, 그 참조자를 반환하는 것은 괜찮지만 함수에서 생성된 객체의 참조자를 반환하는 경우 생성자와 소멸자가 중복하여
불필요한 호출만 일어나게 되어 '부적화'가 생긴다.

해결법
' 새로운 객체를 반환하게 만드는 것 '



잊지말자!
지역 스택 객체에 대한 포인터나 참조자를 반환하는 일, 혹은 힙에 할당된 객체에 대한 참조자를 반환하는 일,
또는 지역 정적 객체에 대한 포인터나 참조자를 반환하는 일은 그런 객체가 두 개 이상 필요해질 가능성이 있다면
절대로 하지 말자



**느낀점** 이번 항목은 어렵다고 느껴진다. 새로운 객체를 반환하게 만드는 것이 무슨 소리인지 잘 이해가 안된다.
profile
개에에에바알

0개의 댓글