인프런 커뮤니티 질문&답변
복사 생성자
작성
·
363
0
질문1 : 복사 생성자 AutoPtr(const AutoPtr& a)부분에서 AutoPtr& a여기서 AutoPtr인데 Resource 클래스를 넣어도 복사 생성자가 호출이 되나요?? 타입이 다른데 왜 문제가 없죠?
질문2: AutoPtr 복사생성자 안에 있는 *m_ptr = *a.m_ptr 이 부분에서 Resource의 대입연산자 오버로딩이 호출이 되는부분에서 *m_ptr이 역참조를 하는건 알겠는데 그럼 뭐가 나오는건가요???
그리고 *m_ptr = *a.m_ptr도 (*a).m_ptr 이렇게하는데 왜 a도 역참조를 하나요?? 객체자체니까 상관없지 않나요???
답변 1
0
질문1. AutoPtr.h 에서 말씀이신가요?
말씀하신대로 아래와 같이 빌드되지 않습니다.

질문2. 단순히 대입할 형과 맞추어주기 위해 역참조를 하는 것입니다.
그리고 아래와 같이 m_ptr이 T*로 선언되어 있기 때문에 객체 자체를
대입하는 것보다 역참조하여 값을 대입하는 것이 옳습니다.
T* m_ptr;





