[C/C++ 강좌] 74강. 9부 종합문제 2 (동적 할당과 객체 복사)

Поделиться
HTML-код
  • Опубликовано: 9 янв 2025

Комментарии • 29

  • @dhhan68
    @dhhan68 Месяц назад

    잘 보고 갑니다. 강의하시는 열정에 감사드립니다. 저도 유튜브를 통해 다른 강의를 좀 했었는데 쉽지가 않더라구요. 오래 전에 C언어를 좀 했었는데 당시에는 객체 지향이라는 개념이 낯설어서 제대로 배우지 못했습니다. 이제 조금씩 익혀나가니 상당히 재미있네요. 객체, 상속 개념도 현실 세계를 해석하는 하나의 추상 개념에서 출발한 듯하여 더욱 흥미롭고요. C++은 로봇 제어, 임베디드 등등 어디 안 쓰이는 데가 없더라구요...ㅎㅎ

  • @참구리네
    @참구리네 3 года назад +1

    너무 어려워서 일주일 동안 얕은복사 깊은복사 관련된 부분만 각 동영상 별로 10번 이상은 돌려본 것 같아요. 그런데 문제 풀 때 10분도 안되어서 풀어버렸어요. 문제를 풀고 나서 저절로 함성이 나오더군요. 이걸 끝내 이해한 자신이 대견하기도 하고 너무 감격스러웠습니다. 앞으로 강의를 진행하면서 어려운 부분을 맞딱뜨려도 또 이렇게 해낼 수 있겠다는 자신감마저 생겨버렸어요.
    두들낙서님 항상 좋은 강의에 감사합니다. 꼭 완강해볼게요!

  • @미필남중생
    @미필남중생 Год назад

    전 강의에 비해서 목소리가 엄청 많이 바뀌었네요 전 강의까지는 진짜 애기 목소리였는데…

  • @jin-px4nm
    @jin-px4nm Год назад

    현재 비주얼스튜디오 2022버전으로 실습 하고 있습니다.
    a = getSqare(); 함수를 호출 구간에서 이동 생성자가 호출이 안 되어 검색을 해보니 RVO 또는 NRVO가 적용되어 최적화 기법이 적용 되어 임시 객체를 생성하지 않고 반환 값을 바로 호출자a 객체의 위치에 생성한다고 하네요.이게 정확한 설명인지 궁금합니다.

  • @신해원
    @신해원 Год назад

    강의 잘 보고 있습니다. 공부 중 질문이 있는데요, 이동 대입 연산자에서는 delete[] points를 안해주어도 되나요? 제 생각에는 만약 points가 존재하는 데 그냥 points = rhs.points를 하면 기존의 points의 메모리를 해제해 주지 못해 메모리 누수가 발생할 것 같은데, 제가 놓친 부분이 있을까요?

    • @Hyuk_Lee
      @Hyuk_Lee Год назад

      rhs.points = NULL; 부분에서 rhs.points가 가르키고 있는 부분을 날려 줬기 때문에
      points가 delete[] 할 수 있는 걸로 알고 있습니다.
      그래서 이동 대입 연산자에서 const로 입력 받지 않는 이유 같고요.

  • @Kdidvk72
    @Kdidvk72 6 лет назад +1

    정말 오랜만에 올리셨네요

  • @eclecticism
    @eclecticism 6 лет назад +2

    오래기다렸네요 조용히 따봉누르고 갑니다.

  • @성훈정-l3k
    @성훈정-l3k 6 лет назад +6

    대한민국 대학생들의 F학점 탈출 희망. 그 이름 두들낙서

  • @JongDDI
    @JongDDI 6 лет назад +1

    드디어 돌아오셨군요!

  • @정철웅-z2v
    @정철웅-z2v 6 лет назад +2

    처음부터 계속 보고있습니다!

  • @놀래-p9l
    @놀래-p9l 2 года назад

    좋은 강의 감사합니다~!

  • @alnnnnnn110
    @alnnnnnn110 6 лет назад +4

    오래 기다렸습니다

  • @qwowp12
    @qwowp12 6 лет назад +1

    진짜 오랜만이닼 ㅋㅋㅋㅋ

  • @bjpark1028
    @bjpark1028 4 года назад

    선생님!!이동생성자에서 rhs.points = NULL; 대신 delete[] rhs.points; 하면 안되나요??

    • @두들낙서
      @두들낙서  4 года назад

      rhs.points = NULL;을 하는 목적은 rhs가 소멸되는 시점에서 동적할당된 데이터가 해제되지 않게 하기 위해서입니다. 실제로 rhs.points와 this->points는 같은 데이터를 가리키고 있고, rhs.points가 가리키고 있던 걸 단지 this->points로 이동시키고 싶을 뿐입니다. 그런데 그 데이터 자체를 지워버리면 this->points가 가리키는 메모리도 같이 지워지겠죠?

  • @김민지-n2e6l
    @김민지-n2e6l 4 года назад

    이동생성자는왜 메모리할당하는 문장이 없는건가요?? 생성자면 다 있어야하는거아닌가요??
    points = new Point[rhs.nPoint];
    이문장이요

    • @김민지-n2e6l
      @김민지-n2e6l 4 года назад

      메모리할당하는이유가 메모리를효과적으로사용하기위해서인데
      이동생성자는 인자에있는것을 받아서 그걸 가리키는거니까 굳이 메모리할당을 안하는건가요??

    • @두들낙서
      @두들낙서  4 года назад

      이동 생성자는 메모리 할당을 새로 하면 안 됩니다! 이동 생성자의 목적이 원본 객체의 데이터는 복사하지 않고 그대로 주소 값만 가져오는 것이기 때문에, 원본의 데이터에 대한 포인터만 넘겨 받으면 됩니다. 따라서 points = rhs.points;가 됩니다.

    • @두들낙서
      @두들낙서  4 года назад

      이동 생성자는 원본 객체에서 이미 할당되어 있는 메모리를 받아오기 때문에 메모리를 새로 할당해줄 필요가 없습니다.
      points = rhs.points; 에서
      rhs.points는 이미 동적 할당된 메모리를 가리키고 있습니다. 그러니 points에 새로 메모리를 할당하지 않고 그 메모리의 주소 값만 가져와도 충분합니다.
      잘 이해가 안 되시면 69강을 다시 듣고 오시면 도움이 될 겁니다. ruclips.net/video/3ZdqKnbXzU4/видео.html

    • @kohy741
      @kohy741 4 года назад

      메모리할당하는이유가 깊은복사할라고그러는거 아닌가요? 근데 이동생성자는 효율을위해 일부러 얕은복사를 조지는거니까 무브이기때문에 메모리할당 안하는거같슴다 peace

  • @bestpartinonepiece2050
    @bestpartinonepiece2050 6 лет назад

    진짜 오랜만이네요 ㅋㅋㅋㅋㅋㅋ 어떻게 지내셨어요??

  • @kohy741
    @kohy741 4 года назад

    근데 전 기본생성자에있는 this->points 요부분이 이해가안가요

  • @rkdraeq
    @rkdraeq 4 года назад

    잘보고 있습니다