게임 개발 메모장
[ C++ ] 깊은 복사, 얕은 복사 본문
1. 깊은 복사와 얕은 복사란?
깊은 복사(deep copy)와 얕은 복사(shallow copy)는 객체를 복사하는
두 가지 다른 방법이다. 깊은 복사는 원본 객체와 완전히 독립적인 새로운 객체를 생성하여
값들을 복사하는 것을 의미하며,
얕은 복사는 원본 객체와 복사된 객체가 같은 메모리를 공유하는 방법이다.
2. 깊은 복사와 얕은 복사의 차이점
깊은 복사와 얕은 복사는 복사된 객체의 변경이 원본 객체에 영향을 미치는지 여부로 구분된다.
깊은 복사는 복사된 객체가 원본 객체와 독립적으로 동작하며,
얕은 복사는 복사된 객체와 원본 객체가 메모리를 공유하여 변경이 서로 영향을 미친다.
3. 깊은 복사의 활용 예제
4. 얕은 복사의 활용 예제
5. 깊은 복사와 얕은 복사를 선택하는 기준
-
객체가 동적으로 할당된 자원을 소유하는 경우에는 깊은 복사를 선택한다.
-
객체가 동적으로 할당된 자원을 소유하지 않고, 단순한 값들의 집합인 경우에는 얕은 복사를 선택한다.
-
객체에 소유권 개념이 필요한 경우에는 깊은 복사를 선택한다.
6. 깊은 복사와 얕은 복사의 장단점
-
깊은 복사는 안전하고 독립적인 복사를 제공하지만, 메모리 사용량이 더 많다.
-
얕은 복사는 메모리 사용량이 적지만, 객체의 복사가 어려울 수 있고 의도하지 않은 결과를 초래할 수 있다.
'언리얼 엔진 > C++' 카테고리의 다른 글
[ C++ ] 가변 인자 템플릿 (0) | 2023.12.23 |
---|---|
[ C++ ] 포인터와 레퍼런스의 차이 (0) | 2023.12.17 |
[ C++ ] 메모리 할당 (0) | 2023.12.06 |
[ C ++ ] Lambda 정리 (0) | 2023.12.04 |
[ C++ ] 다중 if문으로 조건 쓰기 vs if문 안에 &&, || 로 한번에 조건 쓰기 (0) | 2023.11.29 |