일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Codility
- pandas
- Prefix Sums
- c++
- Javascript
- Flexbox
- 소수
- 포토샵
- skt membership
- margin
- 확률
- Gap
- dataframe
- grid
- spring
- 통신사할인
- Design Pattern
- 에라토스테네스의 체
- series
- 강화학습
- 백준
- align-items
- 상태
- 수학
- CSS
- c
- SK바이오사이언스
- 알고리즘
- stl
- Photoshop
Archives
- Today
- Total
sliver__
[Mastering C++ Programming] - Smart Pointer 본문
728x90
- C++에서 스마트 포인터를 사용하면 user define garbage collection 기술을 다루는 걱정에서 벗어나 당면한 문제에 집중할 수 있습니다.
- 스마트 포인터를 사용하면 raw pointer를 안전하게 사용할 수 있습니다.
- raw pointer가 사용하는 메모리를 정리하는 책임이 있습니다.
- C++는 다양한 시나리오에서 사용할 수 있는 다양한 유형의 스마트 포인터를 지원합니다.
- auto_ptr
- unique_ptr
- 공유_ptr
- weak_ptr
- auto_ptr 스마트 포인터는 C++11에서 도입되었습니다.
- auto_ptr 스마트 포인터는 범위를 벗어나면 힙 메모리를 자동으로 해제하는 데 도움이 됩니다.
- 그러나 auto_ptr이 하나의 auto_ptr 인스턴스에서 다른 인스턴스로 소유권을 이전하는 방식으로 인해 더 이상 사용되지 않으며 unique_ptr이 대신 도입되었습니다.
- shared_ptr 스마트 포인터는 여러 공유 스마트 포인터가 동일한 개체를 참조하도록 돕고 메모리 관리 부담을 처리합니다.
- weak_ptr 스마트 포인터는 애플리케이션 설계에 순환 종속성 문제가 있을 때 shared_ptr 사용으로 인해 발생하는 메모리 누수 문제를 해결하는 데 도움이 됩니다.
- 일반적으로 사용되지 않는 다른 유형의 스마트 포인터 및 관련 항목이 있으며 다음 글머리 기호 목록에 나열되어 있습니다.
- 그러나 언제 유용한지 알 수 없으므로 직접 탐색하는 것이 좋습니다.
- owner_less
- enable_shared_from_this
- bad_weak_ptr
- default_delete
- owner_less 스마트 포인터는 동일한 raw pointer 개체를 공유하는 경우 두 개 이상의 스마트 포인터를 비교하는 데 도움이 됩니다.
- enable_shared_from_this 스마트 포인터는 이 포인터의 스마트 포인터를 가져오는 데 도움이 됩니다.
- bad_weak_ptr 스마트 포인터는 shared_ptr이 잘못된 스마트 포인터를 사용하여 생성되었음을 암시하는 예외 클래스입니다.
- default_delete 스마트 포인터는 delete 문을 호출하는 unique_ptr에서 사용하는 기본 삭제 정책을 나타내며 delete[]를 사용하는 배열 유형에 대한 부분 특수화도 지원됩니다.
728x90
'CS > C++' 카테고리의 다른 글
[Mastering C++ Programming] - unique_ptr (0) | 2022.12.07 |
---|---|
[Mastering C++ Programming] - auto ptr (0) | 2022.12.07 |
[Mastering C++ Programming] - Issues with raw pointers (0) | 2022.12.07 |
[Mastering C++ Programming] - Memory Management (0) | 2022.12.07 |
[Mastering C++ Programming] - Partial template specialization (0) | 2022.12.06 |
Comments