Bagikan melalui


Kelas CHeapPtr

Kelas penunjuk cerdas untuk mengelola penunjuk tumpuk.

Penting

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

Sintaks

template<typename T, class Allocator=CCRTAllocator>
class CHeapPtr : public CHeapPtrBase<T, Allocator>

Parameter

T
Jenis objek yang akan disimpan pada tumpukan.

Pengalokasi
Kelas alokasi memori yang akan digunakan.

Anggota

Konstruktor Publik

Nama Deskripsi
CHeapPtr::CHeapPtr Konstruktor.

Metode Publik

Nama Deskripsi
CHeapPtr::Alokasikan Panggil metode ini untuk mengalokasikan memori pada tumpukan untuk menyimpan objek.
CHeapPtr::Reallocate Panggil metode ini untuk merealokasi memori pada tumpukan.

Operator Publik

Nama Deskripsi
CHeapPtr::operator = Operator penugasan.

Keterangan

CHeapPtr berasal dari CHeapPtrBase dan secara default menggunakan rutinitas CRT (dalam CCRTAllocator) untuk mengalokasikan dan membebaskan memori. CHeapPtrList kelas dapat digunakan untuk membuat daftar penunjuk tumpukan. Lihat juga CComHeapPtr, yang menggunakan rutinitas alokasi memori COM.

Hierarki Warisan

CHeapPtrBase

CHeapPtr

Persyaratan

Header: atlcore.h

CHeapPtr::Alokasikan

Panggil metode ini untuk mengalokasikan memori pada tumpukan untuk menyimpan objek.

bool Allocate(size_t nElements = 1) throw();

Parameter

nElements
Jumlah elemen yang digunakan untuk menghitung jumlah memori yang akan dialokasikan. Nilai default adalah 1.

Tampilkan Nilai

Mengembalikan true jika memori berhasil dialokasikan, false pada kegagalan.

Keterangan

Rutinitas alokator digunakan untuk mencadangkan memori yang cukup pada tumpukan untuk menyimpan objek nElement dari jenis yang ditentukan dalam konstruktor.

Contoh

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);

CHeapPtr::CHeapPtr

Konstruktor.

CHeapPtr() throw();
explicit CHeapPtr(T* p) throw();
CHeapPtr(CHeapPtr<T, Allocator>& p) throw();

Parameter

p
Penunjuk timbunan yang ada atau CHeapPtr.

Keterangan

Penunjuk timbunan dapat dibuat secara opsional menggunakan penunjuk yang CHeapPtr ada, atau objek. Jika demikian, objek baru CHeapPtr bertanggung jawab untuk mengelola pointer dan sumber daya baru.

Contoh

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Create a new CHeapPtr from the first
CHeapPtr <int> myHP2(myHP);   

CHeapPtr::operator =

Operator penugasan.

CHeapPtr<T, Allocator>& operator=(
    CHeapPtr<T, Allocator>& p) throw();

Parameter

p
Objek yang CHeapPtr sudah ada.

Tampilkan Nilai

Mengembalikan referensi ke yang diperbarui CHeapPtr.

Contoh

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Create a second heap pointer
// and assign it to the first pointer.
CHeapPtr <int> myHP2;
myHP2 = myHP;   

CHeapPtr::Reallocate

Panggil metode ini untuk merealokasi memori pada tumpukan.

bool Reallocate(size_t nElements) throw();

Parameter

nElements
Jumlah elemen baru yang digunakan untuk menghitung jumlah memori yang akan dialokasikan.

Tampilkan Nilai

Mengembalikan true jika memori berhasil dialokasikan, false pada kegagalan.

Contoh

// Create a new CHeapPtr object
CHeapPtr <int> myHP;
// Allocate space for 10 integers on the heap
myHP.Allocate(10);
// Resize the allocated memory for 20 integers
myHP.Reallocate(20);   

Lihat juga

Kelas CHeapPtrBase
Kelas CCRTAllocator
Gambaran Umum Kelas