• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

복사생성자

23.01.03 20:57 작성 23.01.03 21:30 수정 조회수 271

0

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

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

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

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

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

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

 

답변 1

답변을 작성해보세요.

1

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

하지만

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

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