A. 모던 C++ 스마트 포인터
메모리 관리를 보다 효율적으로 처리하기 위해 사용
모두 <memory> 헤더 파일에 정의
1. shared_ptr
a. shared_ptr이란?
🌟 동적으로 할당된 메모리를 가리키는 포인터
- 여러 개의 shared_ptr이 같은 객체를 가리킬 때, 해당 객체는 참조 카운트(reference count)를 유지하며, 객체를 참조하는 shared_ptr의 수를 추적
- 객체를 참조하는 shared_ptr이 모두 소멸될 때, 객체가 자동으로 메모리에서 해제
- 순환 참조(circular reference)를 방지하기 위해 메모리 누수를 방지
- 스마트 포인터의 비중 99%
- 섞어쓰면 안되고 shard_ptr을 쓰면 계속 똑같이 써야 함
🧡 래퍼 포인터
이런 느낌이랑 비슷하게 사용한다포인터를 소멸시켜주는 클래스 생성
스택에서 소멸될때 알아서 실행된다
➡ 스마트포인터가 있어서 잘 사용하지 않음
b. shard_ptr의 개념
💙 Thread Safe 함!사실 int가 아니라 atomic<int>라 safe하고 조금 더 느리다
c. 스마트 포인터를 참조값으로?
만약 스마트 포인터를 매개변수로 넘기면
위 경우가 아닌 나머지 경우는 사용 XXX (일반 포인터와 동일해짐)
d. shared_ptr의 단점
이걸 해결하기 위해 나온게 weak_ptr! (다음 강의)
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버 -
어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로 게임 프
www.inflearn.com
'프로그래밍 언어 > C++' 카테고리의 다른 글
[게임 프로그래머 입문 올인원] 모던 C++ 스마트 포인터 : weak_ptr (84강) (0) | 2024.03.30 |
---|---|
[게임 프로그래머 입문 올인원] 모던 C++ : 오른값 참조 (82강) (0) | 2024.03.30 |
[게임 프로그래머 입문 올인원] 모던 C++ : 멀티바이트와 유니코드(81강) (0) | 2024.03.30 |
[게임 프로그래머 입문 올인원] 모던 C++ : std::string (80강) (0) | 2024.03.30 |
[게임 프로그래머 입문 올인원] STL Algorithms : 기본정렬 (78강) (0) | 2024.03.28 |