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

SH님의 프로필 이미지

작성한 질문수

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

15.3 이동 생성자와 이동 대입

복사 생성자 질문

22.12.18 14:44 작성

·

217

·

수정됨

0

main_res = generateResource();

여기서 main_res와 generateResource()가 서로 같은 타입의 객체니까 복사 생성자가 호출이 되는건 알겠는데 복사 생성자가 호출이 된 다음에 왜 대입연산자 오버로딩을 한게 호출이 되나요??

그렇게 된다면

여기서 해보니까 move constructor인 복사 생성자가 호출이 되고 거기서 a.m_ptr = nullptr을 해주어서

AutoPtr destructor가 호출이 됬는데 그 후에

오버로딩한 대입연산자가 실행되어지면 이미 m_ptr에 복사 생성자에서 복사를 했는데 왜 또 똑같이 복사를하고 a.m_ptr이 이미 삭제가 되어있는데도 제대로 동작을 하는건가요??

답변 1

0

강민철님의 프로필 이미지

2022. 12. 20. 17:45

음.. 이건 생성자 부분에 디버그 포인트를 찍어서

하나씩 살펴보시는 것이 가장 정확할 것 같은데 그렇게 확인해보시겠어요?

복사 생성자는 기본적으로 객체당 하나씩 실행됩니다.

 

SH님의 프로필 이미지

작성한 질문수

질문하기