• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

복사 생성자 질문

22.12.18 14:44 작성 22.12.18 14:48 수정 조회수 174

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

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

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

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