Language/C++
스마트 포인터와 RAII
AK-KO
2024. 2. 26. 11:42
C++ 에서 동적 할당을 할 때는 일반적인 포인터를 사용했다. (전통적인 방법)
스마트 포인터 라는 것을 사용하면
객체가 지워져야 할 때 굳이 delete 를 해주지 않아도 자동으로 잘 삭제해줄 수 있다.
스마트 포인터를 사용하려면 #include <memory> 를 해줘야 한다.
스마트 포인터는 3가지 종류가 있다.
unique_ptr, shared_ptr, week_ptr
기본적인 사용 방법
unique_ptr<int>(new int(5));
// 잘못된 사용 방법
unique_ptr<int> a = new int(5);
위의 코드는 변환 생성자를 암시하고 있기 때문에 스마트 포인터에서는 변환 생성자를 묵시적으로 호출할 수 없다.
그래서 반드시 아래의 형태로 사용해야한다.
unique_ptr<int> a(new int(5));