C,C++
2023. 9. 25.
공부하면서 빠트린 것들 끄적끄적 - 얕은 복사 vs 깊은 복사
얕은 복사 같은 메모리를 참조하여 복사 생성을 합니다. 디폴트 복사 생성자는 얕은 복사입니다. (default 키워드) 깊은 복사 얕은 복사를 진행하되, 포인터나 참조한 값들은 새로 메모리를 할당하여 복사 생성을 합니다. 깊은 복사는 직접 프로그래머가 작성해 주어야합니다. 예시코드 class Monster { public: char* name; int hp; int damage; public: Monster(const Monster& other) = default; } 코드 설명 이 경우 default로 얕은 복사를 진행할 경우, name은 포인터로 만들어졌으므로 삭제를 진행할 때 같은 메모리를 참조하므로 중복 delete가 진행될 위험이 있습니다. 만약 깊은 복사로 진행할 경우, 아래의 코드처럼 직접 ..