Поделиться через


Класс CHeapPtrBase

Этот класс формирует основу для нескольких классов смарт-указателя кучи.

Внимание

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.

Синтаксис

template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase

Параметры

T
Тип объекта, который должен храниться в куче.

Allocator
Используемый класс выделения памяти. По умолчанию подпрограммы CRT используются для выделения и освобождения памяти.

Участники

Открытые конструкторы

Имя Описание
CHeapPtrBase::~CHeapPtrBase Деструктор

Открытые методы

Имя Описание
CHeapPtrBase::AllocateBytes Вызовите этот метод для выделения памяти.
CHeapPtrBase::Attach Вызовите этот метод для владения существующим указателем.
CHeapPtrBase::Detach Вызовите этот метод, чтобы освободить владение указателем.
CHeapPtrBase::Free Вызовите этот метод для удаления объекта, на который указывает объект CHeapPtrBase.
CHeapPtrBase::ReallocateBytes Вызовите этот метод для перераспределирования памяти.

Общедоступные операторы

Имя Описание
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 объект. В отладочных сборках происходит сбой утверждения, если CHeapPtrBase указывает на ЗНАЧЕНИЕ NULL.

CHeapPtrBase::operator T*

Оператор приведения.

operator T*() const throw();

Замечания

Возвращает CHeapPtrBase::m_pData.

CHeapPtrBase::ReallocateBytes

Вызовите этот метод для перераспределирования памяти.

bool ReallocateBytes(size_t nBytes) throw();

Параметры

nBytes
Новый объем памяти для выделения в байтах.

Возвращаемое значение

Возвращает значение true, если память успешно выделена, значение false в противном случае.

См. также

Класс CHeapPtr
Класс CComHeapPtr
Общие сведения о классе