일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- String
- Trie
- Two Points
- Dijkstra
- Stored Procedure
- 다익스트라
- DP
- two pointer
- MYSQL
- 그래프
- 스토어드 프로시저
- union find
- Brute Force
- SQL
- Hash
- 이진탐색
- binary search
Archives
- Today
- Total
codingfarm
제 1부 생성패턴 본문
- C++에서 객체를 생성하는 것은 매우 까다롭다.
- 어느 메모리 영역?
- 스택할당
- 힙할당
- 어떤 포인터로?
- 일반 포인터
- 스마트포인터
- 어떤 포인터로?
- 객체의 생성방법은?
- native 코드로
- 생성 패턴으로
- builder, factory
- 어느 메모리 영역?
- 생성패턴
- 정의 : 까다로운 객체 생성 절차에 대한 어려움을 해소하는 디자인패턴
생성패턴에 대해 본격적으로 배우기 전 C++의 기본적인 부분을 알아야 한다.
스택(stack) 할당
- 스택 메모리를 할당받아 객체를 생성하면 stack에 할당됨
- scope를 벗어날 때 자동으로 소멸되며 소멸자가 호출됨
힙(heap) 할당
- 원시 포인터를 이용하여 동적 할당을 통해 객체를 생성하면 heap에 할당됨
- scope를 벗어나도 소멸되지 않는다.
- 메모리 해제를 비롯한 뒷정리에 대해 불분명한 문제가 생긴다.
스마트 포인터
- 힙에 할당된 포인터를 받아 더이상 참조하는 곳이 없으면 자동으로 소멸되도록 관리되는 포인터
- unique 포인터(unique_ptr)
- "독점" 포인터라 함
- 복제할 수 없고 다른 함수에 넘겨줄 수도 없음
- 단, 원본과 그 제어권 까지 통째로 이양하는 것은 가능
- shared 포인터(shared_ptr)
- "공유" 포인터라 함
- 힙에 할당된 포인터를 받아 코드 안의 다른 곳과 포인터를 공유함
'소프트웨어 공학 > 디자인패턴' 카테고리의 다른 글
제 1부 생성패턴 - 3장. 팩토리(Factory) - 작성중 (0) | 2021.05.22 |
---|---|
제 1부 생성패턴 - 2장. 빌더(Builer) (0) | 2021.04.16 |
1장. SOLID 디자인 원칙 - 2 (0) | 2019.10.22 |
1장. SOLID 디자인 원칙 - 1 (0) | 2019.10.20 |