다음을 통해 공유


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를 반환합니다.

참고 항목

CHeapPtr 클래스
CComHeapPtr 클래스
클래스 개요