smart pointer1 [Effective C++] 항목 13 : 자원 관리에는 객체가 그만! auto_ptr과 tr1::shared_ptr에 대해서 서술되어 있는데 현재 auto_ptr은 사라진 상태이므로 그냥 그 이후에 적용된 스마트포인터 중 유니크 포인터에 대해서 서술하겠다. auto_ptr이 왜 사라진 이유는 배열의 포인터를 해제할 때 배열 객체가 모두 제대로 해제되지 않는다는 것과 복사 대입 연산시 실제로는 복사가 되지 않는다는 것이다. 이러한 문제점들을 보완하기 위해 C++11 표준에서는 새로운 스마트 포인터들이 포함됐다. 그리고 이동 시맨틱이 추가되었다. 이동 시맨틱은 객체를 복사하지 않고 이동시킨다. 이동 후에 객체의 소유권은 당연히 대입된 쪽이 가진다. 복사 시맨틱일 경우, STL 컨테이너 중 리스트나 벡터는 동적 배열이기 때문에 상황에 따라 그 메모리 크기가 두배까지 늘어난다. .. 2019. 7. 31. 이전 1 다음