작성
·
395
·
수정됨
0
루키스님 안녕하세요. 복사생성자에 대해 궁금한 점이 있어 문의 남깁니다.
Knight knight = Kngith();
이렇게 선언할때에는 어떤 생성자가 호출이 되는 건가요?
제가 생각한 내용은 다음과 같습니다
1. Knight() 를 통해 임시 객체를 만든다 -> 기본생성자 호출
금방 기본생성자를 통해 만들어진 Knight의 임시객체를 knight에 대입한다.
3. Knight knight는 복사생성자를 호출하여 임시객체를 복사한다.
답변 1
1
Knight knight = Knight() 이렇게 하면 기본 생성자가 호출됩니다.
하지만
Knight knight; // 기본 생성자
knight = Knight(); // 복사연산자
이렇게 하면 기본 생성자 + 복사 연산자가 호출됩니다.
이 부분은 직접 breakpoint를 걸어보시면서 실습해보시면 도움이 됩니다.