강의

멘토링

커뮤니티

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

편백나무님의 프로필 이미지
편백나무

작성한 질문수

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

15.3 강에서 처음에는 L밸류레퍼런스타입으로 대입연산자 오버라이드 사용하셨는데...

작성

·

219

1

질문 1 : 제너레이트리소스 함수가 반환하는 리턴값은 분명히 R밸류인데 어떻게 L밸류로 오버라이드된 대입연산자가 에러가안나고 딥카피를 수행하는건지 모르겠습니다 제가 놓친부분이 있나요? ㅠㅠ

질문 2: 두번째로 주석처리한거 풀으시고 엠퍼센트 두개짜리 R밸류레퍼런스를(제너레이트 리소스함수 같은) 받는 복사생성자와 대입연산자를 구현하셨는데 R밸류의 주소를 넘겨주고 R밸류라서 없어져야 할 운명이었지만 메모리삭제를 안하는 구나 이렇게 이해를 했습니다. 왜냐하면 딥카피가아닌 이상 메모리가 해제되면 데이터는 날아가게 되기 때문에... 라고 생각했습니다. 이렇게 이해하는게 맞나요?

 

답변 1

2

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

안녕하세요? 몇 분 몇 초 인지 적어주시면 제가 더 정확하게 답을 드릴 수 있습니다. 저도 강의를 다 외우지는 못합니다. 질문을 해당 강의 영상이 아니라 그냥 강의 페이지에서 작성하신 것 같네요. 1번은 몇 번 질문이 들어와서 답을 여러번 적었는데 시스템이 바뀌어서 강사가 댓글 보기가 어렵게 됐네요. 아마 댓글 중에 기록이 남아있을 것같습니다. 다시 정리하면 1번은 함수의 로컬 영역에서 더이상 사용되지 않는 메모리에 대해서 컴파일러가 옮겨주는 것으로 기억합니다. C++은 아무래도 C보다 복잡하기 때문에 컴파일러가 해주는 일들이 (알게 모르게 도와주는 일들이) 꽤 많습니다. 다른 언어들은 더 많지요.

2번도 글로만 봐서는 질문을 이해하기가 어려운 측면도 있는데 '이렇게 이해하는게 맞나요?'라고 물어보시면 대부분의 경우 대답을 해드리기가 어렵습니다. 코드와 같이 구체적으로 질문을 해주시면 다시 도와드리겠습니다.

편백나무님의 프로필 이미지
편백나무

작성한 질문수

질문하기