-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
15.3에서 생성자, 복사 대입 연산자 관련
23.04.08 16:18 작성 조회수 225
1
(이미지가 잘 안 보여서 저장해서 보셔야할 것 같습니다)
이동 생성자 설명 전 강의 초반에 복사 생성자를 사용하면 어떻게 되는지 보여주시는데 이해가 잘 안 돼서 디버거를 사용해보았습니다.
제가 이해한대로 적어봤는데, 혹시 잘못 이해한 부분이 있다면 설명 부탁드립니다.
그리고 이미지에도 적어두었듯이 맨 첫줄에서 왜 Resource default construct는 호출되지 않은 것인지 궁금합니다!
다른 질문자들에게 달아주신 답변들도 참고하며 공부하고 있습니다. 감사합니다.
답변을 작성해보세요.
2
Soobak
2023.04.09
안녕하세요, 답변 도우미 Soobak 입니다. 🍉
첫 줄에서 Resource default construct
가 출력되지 않는 이유는AutoPtr<Resource> main_res;
에서 Resource
객체의 기본 생성자를 호출하지 않기 때문입니다.
아마도 AutoPtr<Resource> main_res;
코드 부분에서 템플릿과 멤버 변수의 초기화를 혼동하신 듯 합니다.Resource
객체가 생성되는 시점은 generateResource()
함수 내부에서 AutoPtr<Resource> res(new Resource(10000000));
을 호출할 때 입니다.
첨부하신 이미지의 설명은 꼼꼼히 읽어보았으며, 올바르게 이해하고 계신 것 같습니다. 👍
하지만 추후에는 전체 코드를 함께 올려주시면 제가 더 도움을 자세히 드릴 수 있을 것 같습니다.
질문자님께서 추가로 작성하신 코드의 작동 과정을 제가 알 수 없고, 코드에서 오타가 생겼을 수도 있는 등 도움을 드릴 수 있는 데에 한계가 있기 때문입니다.
꼼꼼하게 공부하시는 모습 멋있으세요, 화이팅!
답변 1