Aracılığıyla paylaş


CHeapPtr Sınıfı

Yığın işaretçilerini yönetmek için bir akıllı işaretçi sınıfı.

Önemli

Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.

Sözdizimi

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

Parametreler

T
Yığında depolanacak nesne türü.

Ayırıcı
Kullanılacak bellek ayırma sınıfı.

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CHeapPtr::CHeapPtr Oluşturucu.

Genel Yöntemler

Veri Akışı Adı Açıklama
CHeapPtr::Allocate Nesneleri depolamak için yığında bellek ayırmak için bu yöntemi çağırın.
CHeapPtr::Reallocate Yığındaki belleği yeniden dağıtmak için bu yöntemi çağırın.

Ortak İşleçler

Veri Akışı Adı Açıklama
CHeapPtr::operator = Atama işleci.

Açıklamalar

CHeapPtrCHeapPtrBase'den türetilir ve varsayılan olarak bellek ayırmak ve boşaltmak için CRT yordamlarını (CCRTAllocator'da) kullanır. CHeapPtrList sınıfı yığın işaretçilerinin listesini oluşturmak için kullanılabilir. Ayrıca bkz. COM bellek ayırma yordamlarını kullanan CComHeapPtr.

Devralma Hiyerarşisi

CHeapPtrBase

CHeapPtr

Gereksinimler

Üst bilgi: atlcore.h

CHeapPtr::Allocate

Nesneleri depolamak için yığında bellek ayırmak için bu yöntemi çağırın.

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

Parametreler

nElements
Ayrılacak bellek miktarını hesaplamak için kullanılan öğe sayısı. Varsayılan değer 1 şeklindedir.

Dönüş Değeri

Bellek başarıyla ayrılmışsa true, hatada false döndürür.

Açıklamalar

Ayırıcı yordamları, oluşturucuda tanımlanan bir türdeki nElement nesnelerini depolamak için yığında yeterli belleği ayırmak için kullanılır.

Örnek

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

CHeapPtr::CHeapPtr

Oluşturucu.

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

Parametreler

p
Mevcut bir yığın işaretçisi veya CHeapPtr.

Açıklamalar

Yığın işaretçisi isteğe bağlı olarak mevcut bir işaretçi veya CHeapPtr nesne kullanılarak oluşturulabilir. Bu durumda, yeni CHeapPtr nesne yeni işaretçiyi ve kaynakları yönetme sorumluluğunu üstlenir.

Örnek

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

CHeapPtr::operator =

Atama işleci.

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

Parametreler

p
Varolan bir CHeapPtr nesnesi.

Dönüş Değeri

Güncelleştirilmiş CHeapPtröğesine bir başvuru döndürür.

Örnek

// 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

Yığındaki belleği yeniden dağıtmak için bu yöntemi çağırın.

bool Reallocate(size_t nElements) throw();

Parametreler

nElements
Ayrılacak bellek miktarını hesaplamak için kullanılan yeni öğe sayısı.

Dönüş Değeri

Bellek başarıyla ayrılmışsa true, hatada false döndürür.

Örnek

// 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);   

Ayrıca bkz.

CHeapPtrBase Sınıfı
CCRTAllocator Sınıfı
Sınıfa Genel Bakış