한 줄 요약

<aside> 💡

</aside>

Smart Pointer – 추가기능을 가진 포인터다.

● 일반적인 포인터에 비해 좋은점 몇가지 가지고 있음

● 포인터를 우리가 잡는다는 것은 메모리를 잡는 것.

우리가 코드를 작성하며 동적으로 메모리를 할당할 때, 이를 잊어버릴 수 있다

⇒ memory leak인 상황 이런걸 막기 위해 Smart Pointer를 사용한다.

Smart Pointer의 종류

순환 참조

std::shared_ptr<MyClass> sharedPtr1 = std::make_shared<MyClass>();
std::shared_ptr<MyClass> sharedPtr2 = std::make_shared<MyClass>();

// sharedPtr1과 sharedPtr2가 서로를 가리키게 됨 (순환 참조)
sharedPtr1->member = sharedPtr2;
sharedPtr2->member = sharedPtr1;

사용 예시