CHeapPtrBase
클래스
이 클래스는 여러 스마트 힙 포인터 클래스의 기초를 형성합니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase
매개 변수
T
힙에 저장할 개체 형식입니다.
Allocator
사용할 메모리 할당 클래스입니다. 기본적으로 CRT 루틴은 메모리를 할당하고 해제하는 데 사용됩니다.
멤버
Public 생성자
속성 | 설명 |
---|---|
CHeapPtrBase::~CHeapPtrBase |
소멸자입니다. |
공용 메서드
이름 | 설명 |
---|---|
CHeapPtrBase::AllocateBytes |
메모리를 할당하려면 이 메서드를 호출합니다. |
CHeapPtrBase::Attach |
이 메서드를 호출하여 기존 포인터의 소유권을 가져옵니다. |
CHeapPtrBase::Detach |
포인터의 소유권을 해제하려면 이 메서드를 호출합니다. |
CHeapPtrBase::Free |
이 메서드를 호출하여 .에서 가리키는 개체를 CHeapPtrBase 삭제합니다. |
CHeapPtrBase::ReallocateBytes |
메모리를 다시 할당하려면 이 메서드를 호출합니다. |
Public 연산자
속성 | 설명 |
---|---|
CHeapPtrBase::operator T* |
캐스트 연산자입니다. |
CHeapPtrBase::operator & |
& 연산자입니다. |
CHeapPtrBase::operator -> |
멤버에 대한 포인터 연산자입니다. |
공용 데이터 멤버
속성 | 설명 |
---|---|
CHeapPtrBase::m_pData |
포인터 데이터 멤버 변수입니다. |
설명
이 클래스는 여러 스마트 힙 포인터 클래스의 기초를 형성합니다. 예를 들어 CHeapPtr
CComHeapPtr
파생 클래스는 자체 생성자 및 연산자를 추가합니다. 구현 예제는 다음 클래스를 참조하세요.
요구 사항
헤더: atlcore.h
CHeapPtrBase::AllocateBytes
메모리를 할당하려면 이 메서드를 호출합니다.
bool AllocateBytes(size_t nBytes) throw();
매개 변수
nBytes
할당할 메모리의 바이트 수입니다.
반환 값
메모리가 성공적으로 할당되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
설명
디버그 빌드에서 멤버 변수가 현재 기존 값을 가리키면 CHeapPtrBase::m_pData
어설션 오류가 발생합니다. 즉, NULL과 같지 않습니다.
CHeapPtrBase::Attach
이 메서드를 호출하여 기존 포인터의 소유권을 가져옵니다.
void Attach(T* pData) throw();
매개 변수
pData
개체는 CHeapPtrBase
이 포인터의 소유권을 맡습니다.
설명
개체가 CHeapPtrBase
포인터의 소유권을 가져오는 경우 범위를 벗어나면 포인터와 할당된 데이터가 자동으로 삭제됩니다.
디버그 빌드에서 멤버 변수가 현재 기존 값을 가리키면 CHeapPtrBase::m_pData
어설션 오류가 발생합니다. 즉, NULL과 같지 않습니다.
CHeapPtrBase::~CHeapPtrBase
소멸자입니다.
~CHeapPtrBase() throw();
설명
할당된 모든 리소스를 해제합니다.
CHeapPtrBase::Detach
포인터의 소유권을 해제하려면 이 메서드를 호출합니다.
T* Detach() throw();
반환 값
포인터의 복사본을 반환합니다.
설명
포인터의 소유권을 해제하고 멤버 변수를 CHeapPtrBase::m_pData
NULL로 설정하고 포인터의 복사본을 반환합니다.
CHeapPtrBase::Free
이 메서드를 호출하여 .에서 가리키는 개체를 CHeapPtrBase
삭제합니다.
void Free() throw();
설명
이 개체가 CHeapPtrBase
가리키는 개체가 해제되고 멤버 변수가 CHeapPtrBase::m_pData
NULL로 설정됩니다.
CHeapPtrBase::m_pData
포인터 데이터 멤버 변수입니다.
T* m_pData;
설명
이 멤버 변수는 포인터 정보를 보유합니다.
CHeapPtrBase::operator &
& 연산자입니다.
T** operator&() throw();
반환 값
개체가 가리키는 CHeapPtrBase
개체의 주소를 반환합니다.
CHeapPtrBase::operator ->
멤버에 대한 포인터 연산자입니다.
T* operator->() const throw();
반환 값
멤버 변수의 CHeapPtrBase::m_pData
값을 반환합니다.
설명
이 연산자를 사용하여 개체가 가리키는 클래스의 메서드를 호출합니다 CHeapPtrBase
. 디버그 빌드에서 NULL을 가리키는 경우 CHeapPtrBase
어설션 오류가 발생합니다.
CHeapPtrBase::operator T*
캐스트 연산자입니다.
operator T*() const throw();
설명
CHeapPtrBase::m_pData
을(를) 반환합니다.
CHeapPtrBase::ReallocateBytes
메모리를 다시 할당하려면 이 메서드를 호출합니다.
bool ReallocateBytes(size_t nBytes) throw();
매개 변수
nBytes
할당할 새 메모리 양(바이트)입니다.
반환 값
메모리가 성공적으로 할당되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.