인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

피로한 미어캣님의 프로필 이미지
피로한 미어캣

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

얕은 복사 vs 깊은 복사 #2

복사생성자

작성

·

395

·

수정됨

0

루키스님 안녕하세요. 복사생성자에 대해 궁금한 점이 있어 문의 남깁니다.

Knight knight = Kngith();
이렇게 선언할때에는 어떤 생성자가 호출이 되는 건가요?

제가 생각한 내용은 다음과 같습니다

1. Knight() 를 통해 임시 객체를 만든다 -> 기본생성자 호출

  1. 금방 기본생성자를 통해 만들어진 Knight의 임시객체를 knight에 대입한다.

3. Knight knight는 복사생성자를 호출하여 임시객체를 복사한다.

 

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

Knight knight = Knight() 이렇게 하면 기본 생성자가 호출됩니다.

하지만

Knight knight; // 기본 생성자
knight = Knight(); // 복사연산자

이렇게 하면 기본 생성자 + 복사 연산자가 호출됩니다.
이 부분은 직접 breakpoint를 걸어보시면서 실습해보시면 도움이 됩니다.

피로한 미어캣님의 프로필 이미지
피로한 미어캣

작성한 질문수

질문하기