스마트 포인터와 RAII2024. 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));
'Language > C++' 카테고리의 다른 글
[C++] cin 입력 시 공백 포함 으로 입력 받기 (0) | 2024.01.17 |
---|---|
[C++] 함수 객체와 임시 객체 (0) | 2023.11.23 |
[펌] 생성자 소멸자 관련 (0) | 2023.08.19 |
[BT] 요약 (0) | 2023.08.18 |
[C++] C++ 스타일 파일입출력 (0) | 2022.11.12 |