Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
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);