• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

15.3에서 생성자, 복사 대입 연산자 관련

23.04.08 16:18 작성 조회수 225

1

Chapter15.03_이동 생성자와 이동 대입_질문작성.png(이미지가 잘 안 보여서 저장해서 보셔야할 것 같습니다)

이동 생성자 설명 전 강의 초반에 복사 생성자를 사용하면 어떻게 되는지 보여주시는데 이해가 잘 안 돼서 디버거를 사용해보았습니다.

제가 이해한대로 적어봤는데, 혹시 잘못 이해한 부분이 있다면 설명 부탁드립니다.

그리고 이미지에도 적어두었듯이 맨 첫줄에서 왜 Resource default construct는 호출되지 않은 것인지 궁금합니다!

 

다른 질문자들에게 달아주신 답변들도 참고하며 공부하고 있습니다. 감사합니다.

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

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)); 을 호출할 때 입니다.

첨부하신 이미지의 설명은 꼼꼼히 읽어보았으며, 올바르게 이해하고 계신 것 같습니다. 👍
하지만 추후에는 전체 코드를 함께 올려주시면 제가 더 도움을 자세히 드릴 수 있을 것 같습니다.
질문자님께서 추가로 작성하신 코드의 작동 과정을 제가 알 수 없고, 코드에서 오타가 생겼을 수도 있는 등 도움을 드릴 수 있는 데에 한계가 있기 때문입니다.

꼼꼼하게 공부하시는 모습 멋있으세요, 화이팅!

얌냠냠님의 프로필

얌냠냠

질문자

2023.04.09

항상 자세하게 답변주셔서 감사합니다, Soobak님!

강의 나오는 코드 그대로라 안 올려도 될 줄 알았는데 다음에는 코드도 같이 올리겠습니다 ㅎㅎ

Soobak님의 프로필

Soobak

2023.04.10

감사하다는 말씀에 저도 감사드립니다. 😊
덕분에, 아침부터 기분 좋게 하루를 시작 할 수 있게 됐네요.
감사합니다, 화이팅! 👍