스마트 포인터
-
스마트 포인터개발/C·C++ 2021. 9. 19. 17:33
포인터는 C++ 입문자들에게 첫 번째 장벽이면서 C++ 개발자들이 평생 신경 써야 하는 존재입니다. Java와 C#은 자동으로 메모리를 관리해주지만 C++은 개발자가 관리해야 하죠. 하지만 Raw pointer을 전부 일일이 관리할 수 없기 때문에 스마트 포인터를 잘 활용해야 합니다. 스마트 포인터는 지역 변수의 생명 주기를 이용하는 클래스입니다. 소멸자를 통해서 메모리를 해제시켜주기 때문에 직접 delete를 이용하는 것보단 부담이 덜합니다. 여기서 중요한 것은 부담이 덜하다는 것이지 완전히 사라지는 것이 아니라는 점입니다. unique_ptr은 이름에서 알 수 있듯 포인터가 유일하게 하나만 존재할 수 있도록 복사를 막아놨습니다. shared_ptr은 신경 써서 사용해야 합니다. 내부적으로 참조 카운트..