Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 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 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.