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 CAutoVectorPtrverwiesen 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 CAutoPtrdem einzigen Unterschied, der verwendet CAutoVectorPtrvector 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 CAutoVectorPtrverwiesen 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 Detachist 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.

Siehe auch

CAutoPtr-Klasse
Klassenübersicht