깊은복사, 얕은 복사

하루공부·2024년 1월 14일
0

C++

목록 보기
1/25
post-thumbnail

C++ 아이콘 제작자: Darius Dan - Flaticon

얕은 복사

  • 동적 메모리 할당에 대해서 단순한 복사는 얕은 복사를 한다.

평범하게 디폴트 복사 생성자를 사용한다면 원본 객체로 부터 완전히 1:1로 복사가 된다.
이 때 복사된 객체는 원본 객체와 완전히 독립적이다.
하지만 원본 객체의 포인터도 1:1로 복사가 되어 같은 주소를 가리키는 객체가 생성된다.

따라서 멤버 변수에 포인터나 레퍼런스 변수가 있다면
해당 주소값을 복사해 완전한 사본이 아니게 된다.
이를 얕은 복사라고 한다.

같은 변수르 가리키는 변수가 있다면 1개의 객체가 소멸되면
남은 객체가 가리키고 있던 데이터를 찾을 수 없게 된다. ==> 오류 발생


깊은 복사

  • 얕은 복사와 다르게 주소값을 그대로 복사하는 것이 아닌 자원을 새로 할당하여 그 곳에 데이터를 복사하는 방식

  • 깊은 복사를 하기 위해서는 직접 복사 생성자를 만들어 줘야한다.


<참조>
공부한 내용 복습

개인 공부 기록용 블로그입니다.
틀린 부분 있으다면 지적해주시면 감사하겠습니다!!

0개의 댓글