CAutoVectorPtr-Klasse
Diese Klasse stellt ein intelligentes Zeigerobjekt mithilfe von Vektor-Operatoren für neue und Löschoperatoren dar.
Wichtig
Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.
Syntax
template<typename T>
class CAutoVectorPtr
Parameter
T
Der Zeigertyp.
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CAutoVectorPtr::CAutoVectorPtr | Der Konstruktor. |
CAutoVectorPtr::~CAutoVectorPtr | Der Destruktor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CAutoVectorPtr::Assigned | Rufen Sie diese Methode auf, um den vom Array der Objekte benötigten Speicher zuzuweisen, auf das CAutoVectorPtr verwiesen wird. |
CAutoVectorPtr::Attach | Rufen Sie diese Methode auf, um den Besitz eines vorhandenen Zeigers zu übernehmen. |
CAutoVectorPtr::D etach | Rufen Sie diese Methode auf, um den Besitz eines Zeigers freizugeben. |
CAutoVectorPtr::Free | Rufen Sie diese Methode auf, um ein Objekt zu löschen, das von einem CAutoVectorPtr . |
Öffentliche Operatoren
Name | Beschreibung |
---|---|
CAutoVectorPtr::operator T * | Der Umwandlungsoperator. |
CAutoVectorPtr::operator = | Der -Zuweisungsoperator. |
Öffentliche Datenmember
Name | Beschreibung |
---|---|
CAutoVectorPtr::m_p | Die Membervariable für Zeigerdaten. |
Hinweise
Diese Klasse stellt Methoden zum Erstellen und Verwalten eines intelligenten Zeigers bereit, die zum Schutz vor Speicherlecks beitragen, indem Ressourcen automatisch freigegeben werden, wenn sie außerhalb des Gültigkeitsbereichs fallen. CAutoVectorPtr
ist vergleichbar mit CAutoPtr
dem einzigen Unterschied, der verwendet CAutoVectorPtr
vector new[]
wird und vector delete[]
um Arbeitsspeicher anstelle von C++ new
und Operatoren zuzuweisen und delete
freizugeben. Siehe CAutoVectorPtrElementTraits , wenn Sammlungsklassen CAutoVectorPtr
erforderlich sind.
Ein Beispiel für die Verwendung einer intelligenten Zeigerklasse finden Sie unter CAutoPtr .
Anforderungen
Kopfzeile: atlbase.h
CAutoVectorPtr::Assigned
Rufen Sie diese Methode auf, um den vom Array der Objekte benötigten Speicher zuzuweisen, auf das CAutoVectorPtr
verwiesen wird.
bool Allocate(size_t nElements) throw();
Parameter
nElements
Die Anzahl der Elemente im Array.
Rückgabewert
Gibt "true" zurück, wenn der Speicher erfolgreich zugewiesen wurde, "false bei Fehler".
Hinweise
In Debugbuilds tritt ein Assertionsfehler auf, wenn die Membervariable CAutoVectorPtr::m_p derzeit auf einen vorhandenen Wert verweist. Das heißt, sie ist nicht gleich NULL.
CAutoVectorPtr::Attach
Rufen Sie diese Methode auf, um den Besitz eines vorhandenen Zeigers zu übernehmen.
void Attach(T* p) throw();
Parameter
p
Das CAutoVectorPtr
Objekt übernimmt den Besitz dieses Zeigers.
Hinweise
Wenn ein CAutoVectorPtr
Objekt den Besitz eines Zeigers übernimmt, löscht es automatisch den Zeiger und alle zugeordneten Daten, wenn es außerhalb des Gültigkeitsbereichs ist. Wenn CAutoVectorPtr::D etach aufgerufen wird, übernimmt der Programmierer erneut die Verantwortung, alle zugeordneten Ressourcen freizugeben.
In Debugbuilds tritt ein Assertionsfehler auf, wenn die Membervariable CAutoVectorPtr::m_p derzeit auf einen vorhandenen Wert verweist. Das heißt, sie ist nicht gleich NULL.
CAutoVectorPtr::CAutoVectorPtr
Der Konstruktor.
CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();
Parameter
p
Ein vorhandener Zeiger.
Hinweise
Das CAutoVectorPtr
Objekt kann mit einem vorhandenen Zeiger erstellt werden, in diesem Fall überträgt es den Besitz des Zeigers.
CAutoVectorPtr::~CAutoVectorPtr
Der Destruktor.
~CAutoVectorPtr() throw();
Hinweise
Gibt alle zugeordneten Ressourcen frei. Ruft CAutoVectorPtr::Free auf.
CAutoVectorPtr::D etach
Rufen Sie diese Methode auf, um den Besitz eines Zeigers freizugeben.
T* Detach() throw();
Rückgabewert
Gibt eine Kopie des Zeigers zurück.
Hinweise
Gibt den Besitz eines Zeigers frei, legt die CAutoVectorPtr::m_p Membervariable auf NULL fest und gibt eine Kopie des Zeigers zurück. Nach dem Aufruf Detach
ist es sache des Programmierers, alle zugeordneten Ressourcen freizugeben, über die das CAutoVectorPtr
Objekt zuvor die Verantwortung übernommen haben kann.
CAutoVectorPtr::Free
Rufen Sie diese Methode auf, um ein Objekt zu löschen, das von einem CAutoVectorPtr
.
void Free() throw();
Hinweise
Das Objekt, auf das durch die CAutoVectorPtr
Zeichenfolge verwiesen wird, wird freigegeben, und die Membervariable "CAutoVectorPtr::m_p " ist auf NULL festgelegt.
CAutoVectorPtr::m_p
Die Membervariable für Zeigerdaten.
T* m_p;
Hinweise
Diese Membervariable enthält die Zeigerinformationen.
CAutoVectorPtr::operator =
Der -Zuweisungsoperator.
CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();
Parameter
p
Ein Zeiger.
Rückgabewert
Gibt einen Verweis auf einen CAutoVectorPtr< T >zurück.
Hinweise
Der Zuordnungsoperator trennt das CAutoVectorPtr
Objekt von einem beliebigen aktuellen Zeiger und fügt den neuen Zeiger, p, an seiner Stelle an.
CAutoVectorPtr::operator T *
Der Umwandlungsoperator.
operator T*() const throw();
Hinweise
Gibt einen Zeiger auf den objektdatentyp zurück, der in der Klassenvorlage definiert ist.