[C++] 스마트 포인터.
2011. 12. 27. 19:11ㆍ제2외국어/Windows
C++ 표준 라이브러리에서 제공하는 스마트포인터.
: 참조되는 만큼 참조 카운트를 증가시키고, 반대라면 감소시켜 0이 되면 삭제 시키는 포인터라고 보면 되겠습니다.
( Objective-C에서 Auto-release or ARC 기능과 마찬가지로 어떻게 보면 사용하기 편한 포인터입니다. )
다음과 같은 3가지 특징이 있습니다.
1. 생성과 소멸 작업을 조절 가능.
2. 복사와 대입 동작을 조절 가능 .
3. 역참조 동작을 조절 가능.
하지만 타입제약이 엄격하다는 단점이 있습니다.
대표적인 스마트 포인터로는 auto_ptr과 shared_ptr 가 있습니다.
( 그 외에 weak_ptr, intrusive_ptr. shared_array, scoped_ptr 등이 있습니다. )
더 자세하게 알고싶다면 http://blog.daum.net/creazier/15309389 <-- 자세한 설명이 되어 있습니다!
아래는 위 블로그에서 일부분을 쓴 내용입니다.
: 참조되는 만큼 참조 카운트를 증가시키고, 반대라면 감소시켜 0이 되면 삭제 시키는 포인터라고 보면 되겠습니다.
( Objective-C에서 Auto-release or ARC 기능과 마찬가지로 어떻게 보면 사용하기 편한 포인터입니다. )
다음과 같은 3가지 특징이 있습니다.
1. 생성과 소멸 작업을 조절 가능.
2. 복사와 대입 동작을 조절 가능 .
3. 역참조 동작을 조절 가능.
하지만 타입제약이 엄격하다는 단점이 있습니다.
대표적인 스마트 포인터로는 auto_ptr과 shared_ptr 가 있습니다.
( 그 외에 weak_ptr, intrusive_ptr. shared_array, scoped_ptr 등이 있습니다. )
더 자세하게 알고싶다면 http://blog.daum.net/creazier/15309389 <-- 자세한 설명이 되어 있습니다!
아래는 위 블로그에서 일부분을 쓴 내용입니다.
1. auto_ptr
: C++ 표준 라이브러리에서
제공
: 소유권 이전 금지 (-const 키워드 사용)
[특징]
- 댕글링 포인터 문제를
해결한다.
( : 이미 메모리에서 해체된 대상을 가리키고 있는 포인터 )
2. shared_ptr
: 소유권이 공유되는 방식으로 동작하는 스마트 포인터
: STL 컨테이너에서 사용이 가능하다. (boost library를 반드시 설치하고, include 해야 한다.)
[특징]
: 강한 참조의 성격을 가지고 있다.
: Thread Safety 해제 - 헤더 파일에 " #define BOOST_DISABLE_THREADS "를 적어준다.
// 추가 설명 및 예제가 있는 블로그들...
http://blog.daum.net/creazier/15309389
http://blog.naver.com/kjs077?Redirect=Log&logNo=10106740255
'제2외국어 > Windows' 카테고리의 다른 글
[C#]html, 정규식을 이용한 파싱( using Regex ) (4) | 2013.07.24 |
---|---|
[C#] 간단한 매크로. (0) | 2012.08.08 |
[C#] WebBrower 기초. (간단한 웹브라우저 만들기) (0) | 2012.03.02 |
[C++] 클래스 정의. (2) | 2012.01.27 |