Bagikan melalui


CHeapPtrBase kelas

Kelas ini membentuk dasar untuk beberapa kelas penunjuk timbunan pintar.

Penting

Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.

Sintaks

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

Parameter

T
Jenis objek yang akan disimpan pada tumpukan.

Allocator
Kelas alokasi memori yang akan digunakan. Secara default, rutinitas CRT digunakan untuk mengalokasikan dan membebaskan memori.

Anggota

Konstruktor Publik

Nama Deskripsi
CHeapPtrBase::~CHeapPtrBase Destruktor.

Metode Publik

Nama Deskripsi
CHeapPtrBase::AllocateBytes Panggil metode ini untuk mengalokasikan memori.
CHeapPtrBase::Attach Panggil metode ini untuk mengambil kepemilikan pointer yang ada.
CHeapPtrBase::Detach Panggil metode ini untuk merilis kepemilikan pointer.
CHeapPtrBase::Free Panggil metode ini untuk menghapus objek yang ditujukkan oleh CHeapPtrBase.
CHeapPtrBase::ReallocateBytes Panggil metode ini untuk merealokasi memori.

Operator publik

Nama Deskripsi
CHeapPtrBase::operator T* Operator cast.
CHeapPtrBase::operator & Operator &.
CHeapPtrBase::operator -> Operator pointer-to-member.

Anggota data publik

Nama Deskripsi
CHeapPtrBase::m_pData Variabel anggota data pointer.

Keterangan

Kelas ini membentuk dasar untuk beberapa kelas penunjuk timbunan pintar. Kelas turunan, misalnya, CHeapPtr dan CComHeapPtr, tambahkan konstruktor dan operator mereka sendiri. Lihat kelas-kelas ini untuk contoh implementasi.

Persyaratan

Header: atlcore.h

CHeapPtrBase::AllocateBytes

Panggil metode ini untuk mengalokasikan memori.

bool AllocateBytes(size_t nBytes) throw();

Parameter

nBytes
Jumlah byte memori yang akan dialokasikan.

Nilai hasil

Mengembalikan true jika memori berhasil dialokasikan, salah jika tidak.

Keterangan

Dalam build debug, kegagalan pernyataan akan terjadi jika CHeapPtrBase::m_pData variabel anggota saat ini menunjuk ke nilai yang ada; artinya, itu tidak sama dengan NULL.

CHeapPtrBase::Attach

Panggil metode ini untuk mengambil kepemilikan pointer yang ada.

void Attach(T* pData) throw();

Parameter

pData
Objek CHeapPtrBase akan mengambil kepemilikan penunjuk ini.

Keterangan

CHeapPtrBase Ketika objek mengambil kepemilikan pointer, objek akan secara otomatis menghapus pointer dan data apa pun yang dialokasikan ketika keluar dari cakupan.

Dalam build debug, kegagalan pernyataan akan terjadi jika CHeapPtrBase::m_pData variabel anggota saat ini menunjuk ke nilai yang ada; artinya, itu tidak sama dengan NULL.

CHeapPtrBase::~CHeapPtrBase

Destruktor.

~CHeapPtrBase() throw();

Keterangan

Membebaskan semua sumber daya yang dialokasikan.

CHeapPtrBase::Detach

Panggil metode ini untuk merilis kepemilikan pointer.

T* Detach() throw();

Nilai hasil

Mengembalikan salinan pointer.

Keterangan

Merilis kepemilikan pointer, mengatur CHeapPtrBase::m_pData variabel anggota ke NULL, dan mengembalikan salinan pointer.

CHeapPtrBase::Free

Panggil metode ini untuk menghapus objek yang ditujukkan oleh CHeapPtrBase.

void Free() throw();

Keterangan

Objek yang CHeapPtrBase ditujukkan oleh dibebesarkan, dan CHeapPtrBase::m_pData variabel anggota diatur ke NULL.

CHeapPtrBase::m_pData

Variabel anggota data pointer.

T* m_pData;

Keterangan

Variabel anggota ini menyimpan informasi pointer.

CHeapPtrBase::operator &

Operator &.

T** operator&() throw();

Nilai hasil

Mengembalikan alamat objek yang ditujukkan oleh CHeapPtrBase objek.

CHeapPtrBase::operator ->

Operator pointer-to-member.

T* operator->() const throw();

Nilai hasil

Mengembalikan nilai CHeapPtrBase::m_pData variabel anggota.

Keterangan

Gunakan operator ini untuk memanggil metode di kelas yang diacu oleh CHeapPtrBase objek. Dalam build debug, kegagalan pernyataan akan terjadi jika poin ke CHeapPtrBase NULL.

CHeapPtrBase::operator T*

Operator cast.

operator T*() const throw();

Keterangan

Menampilkan CHeapPtrBase::m_pData.

CHeapPtrBase::ReallocateBytes

Panggil metode ini untuk merealokasi memori.

bool ReallocateBytes(size_t nBytes) throw();

Parameter

nBytes
Jumlah memori baru untuk dialokasikan, dalam byte.

Nilai hasil

Mengembalikan true jika memori berhasil dialokasikan, salah jika tidak.

Lihat juga

CHeapPtr class
CComHeapPtr class
Gambaran umum kelas