C++ 아이콘 제작자: Darius Dan - Flaticon
평범하게 디폴트 복사 생성자를 사용한다면 원본 객체로 부터 완전히 1:1로 복사가 된다.
이 때 복사된 객체는 원본 객체와 완전히 독립적이다.
하지만 원본 객체의 포인터도 1:1로 복사가 되어 같은 주소를 가리키는 객체가 생성된다.따라서 멤버 변수에 포인터나 레퍼런스 변수가 있다면
해당 주소값을 복사해 완전한 사본이 아니게 된다.
이를 얕은 복사라고 한다.
같은 변수르 가리키는 변수가 있다면 1개의 객체가 소멸되면
남은 객체가 가리키고 있던 데이터를 찾을 수 없게 된다. ==> 오류 발생
얕은 복사와 다르게 주소값을 그대로 복사하는 것이 아닌 자원을 새로 할당하여 그 곳에 데이터를 복사하는 방식
깊은 복사를 하기 위해서는 직접 복사 생성자를 만들어 줘야한다.
<참조>
공부한 내용 복습
개인 공부 기록용 블로그입니다.
틀린 부분 있으다면 지적해주시면 감사하겠습니다!!