강의

멘토링

커뮤니티

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

suwoni7335님의 프로필 이미지
suwoni7335

작성한 질문수

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

15.1 이동의 의미와 스마트 포인터

AutoPtr<Resource> res = new Resource

작성

·

271

0

안녕하세요.

아래 두분이 질문을 주셨었는데요..

AutoPtr<Resource> res = new Resource 

이것은

1. res 객체를 만들고

2. copy constructor 이 실행되어

3. new Resource의 주소가

4. res의 m_ptr 에 복사된다.

이렇게 이해하면 되는것인가요?

답변 1

2

음 이 부분은 copy constructor 가 실행 되는게 아니라 AutoPtr의 AutoPtr(T* ptr = nullptr) 이 생성자가 실행되는 것입니다.

복사 생성자가 호출되려면 인자가 똑같은 타입의 객체가 들어와야해요! "AutoPtr<Resource> res = 또다른 AudoPtr 객체" 이런 식이어야 복사 생성자가 호출되는거에요! 

AutoPtr<Resource> res = new Resource 이 식은 그저 AutoPtr 클래스 타입의 res 객체를 만드려는건데 Resource 객체가 인자로 들어갔을 뿐입니다. 

suwoni7335님의 프로필 이미지
suwoni7335

작성한 질문수

질문하기