C++ 기초 얕은 복사와 깊은 복사의 차이는 무엇일까? double delete부터 Rule of Zero까지
댓글수 ·
2026.06.25
한 줄 요약: 얕은 복사는 멤버가 가리키는 주소를 그대로 복사할 수 있지만, 깊은 복사는 복사본이 독립적으로 소유할 자원을 새로 만들며 modern C++에서는 RAII 타입으로 이 책임을 맡기는 편이 안전합니다.먼저 알아야 할 배경C++에서 객체를 대입하거나 값으로 전달하면 복사가 일어날 수 있습니다. int나 std::string만 가진 클래스라면 컴파일러가 만들어 주는 멤버별 복사가 대체로 원하는 값 의미를 제공하지만, 직접 할당한 메모리를 원시 포인터로 소유하면 같은 기본 복사가 전혀 다른 결과를 만듭니다.`copied = original`을 보면 original의 모든 내용이 새로운 공간에 복제된다고 기대하기 쉽습니다. 하지만 기본 복사는 각 멤버의 복사 규칙을 그대로 적용하므로 포인터 멤버에서..