Condividi tramite


Classe auto_ptr

Avvolge un puntatore intelligente intorno a una risorsa che fornisca la risorsa verrà automaticamente eliminato quando il controllo di un blocco.

La classe più in grado di unique_ptr sostituisce auto_ptr. Per ulteriori informazioni, vedere Classe unique_ptr.

Per ulteriori informazioni su throw() e sulla gestione delle eccezioni, vedere Specifiche di eccezioni.

template<class Type>
    class auto_ptr {
public:
    typedef Type element_type;
    explicit auto_ptr(Type *_Ptr = 0) throw();
    auto_ptr(auto_ptr<Type>& _Right) throw();
    template<class Other>
        operator auto_ptr<Other>() throw();
    template<class Other>
        auto_ptr<Type>& operator=(auto_ptr<Other>& _Right) throw();
    template<class Other>
        auto_ptr(auto_ptr<Other>& _Right);
    auto_ptr<Type>& operator=(auto_ptr<Type>& _Right);
    ~auto_ptr();
    Type& operator*() const throw();
    Type *operator->()const throw();
    Type *get() const throw();
    Type *release()throw();
    void reset(Type *_Ptr = 0);
};

Parametri

  • _Right
    auto_ptr da cui ottenere una risorsa esistente.

  • _Ptr
    Il puntatore specificato per sostituire il puntatore archiviato.

Note

La classe modello descrive un puntatore intelligente, denominato auto_ptr, a un oggetto allocato. Il puntatore deve essere null o definire un oggetto allocato da new. auto_ptr trasferisce la proprietà se il valore memorizzato viene assegnato a un altro oggetto. (Sostituisce il valore memorizzato dopo un trasferimento con un puntatore null.) Il distruttore di auto_ptr<Type> elimina l'oggetto allocato. auto_ptr<Type> garantisce che un oggetto allocato automaticamente quando si elimina il controllo consente a un blocco, anche con l'eccezione generata. Non è necessario creare due oggetti di auto_ptr<Type> cui lo stesso oggetto.

È possibile passare un oggetto di auto_ptr<Type> per valore come argomento a una chiamata di funzione. auto_ptr non può essere un elemento di un contenitore standard della libreria. Non è possibile in modo affidabile gestire una sequenza di oggetti di auto_ptr<Type> con un contenitore di una libreria di modelli standard.

Membri

Costruttori

auto_ptr

Il costruttore per oggetti di tipo auto_ptr.

Definizioni typedef

element_type

Il tipo è sinonimo del parametro di template Type.

Funzioni del membro

get

La funzione membro restituisce il puntatore archiviato myptr.

rilascio

Il membro sostituisce il puntatore archiviato myptr con un puntatore null e restituisce il puntatore sopra archiviato.

reset

La funzione membro valuta l'espressione delete myptr, ma solo se le modifiche archiviate di myptr di valore del puntatore come risultato della chiamata di funzione. Sostituisce il puntatore archiviato con ptr.

Operatori

operator=

Un operatore di assegnazione che trasferisce la proprietà da un oggetto di auto_ptr a un altro.

operator*

L'operatore dereferenziante per oggetti di tipo auto_ptr.

operatore->

L'operatore per consentire l'accesso ai membri.

auto_ptrOther dell'operatore<>

Cast da un tipo di auto_ptr a un altro tipo di auto_ptr.

auto_ptr_refOther dell'operatore<>

Cast da auto_ptr a auto_ptr_ref.

Requisiti

memoria<diIntestazione:>

Spazio dei nomi: std

Vedere anche

Riferimenti

Sicurezza dei thread nella libreria standard C++

Classe unique_ptr

Altre risorse

<memoria> membri