Share via


auto_ptr クラス

コントロールはにリソースが自動的に破棄されるようにするリソースの周囲にスマート ポインターをラップします。

unique_ptr をより可能なクラスは、auto_ptrに代わるものです。 詳細については、「unique_ptr クラス」を参照してください。

throw() と例外処理の詳細については、「例外の仕様」を参照してください。

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);
};

パラメーター

  • _Right
    既存のリソースを取得 auto_ptr

  • _Ptr
    保存されたポインターを置換に指定されたポインター。

解説

このテンプレート クラスは、割り当てられたオブジェクトに auto_ptr, というスマート ポインターについて説明します。 ポインターが null です newに割り当てられたオブジェクトを指定する。 auto_ptr は、格納されている値が別のオブジェクトに割り当てると所有権を転送します。(これは null ポインターと転送の後に格納されている値に置き換えられます)。auto_ptr<Type> のデストラクターが割り当てられたオブジェクトを削除します。 auto_ptr<Type> はコントロールはに割り当てられたオブジェクトがスローされた例外によって自動的に削除されることを確認します。 同じを所有するように作成し、auto_ptr<Type> の 2 種類のオブジェクトを構築する必要があります。

引数として値を関数呼び出しの auto_ptr<Type> オブジェクトを渡すことができます。 auto_ptr は、標準ライブラリのコンテナー要素にすることはできません。 確実に標準テンプレート ライブラリのコンテナーを持つ auto_ptr<Type> オブジェクトのシーケンスを管理することはできません。

メンバー

コンストラクター

auto_ptr

auto_ptrオブジェクトのコンストラクター。

Typedef

element_type

この型は、テンプレート パラメーター Type のシノニムです。

メンバー関数

get

このメンバー関数は、格納されているポインター myptrを返します。

リリース

メンバーが null ポインターに格納されたポインター myptr を置き換え、以前に保存したポインターを返します。

reset

このメンバー関数は、格納されているポインター myptr 値を関数呼び出しの結果として変更したときのみ、delete myptr式を評価します。 これは ptrに格納されたポインターを置き換えます。

演算子

operator=

auto_ptr の 1 つがオブジェクトから別の所有権を譲渡する代入演算子です。

operator*

auto_ptrオブジェクトの逆参照の演算子。

operator->

メンバー アクセスを許可するための演算子。

演算子の auto_ptrOther<>

1 種類の auto_ptr から別の種類の auto_ptrへのキャストを行います。

演算子の auto_ptr_refOther<>

auto_ptr から auto_ptr_refへのキャストを行います。

必要条件

**ヘッダー:**の<メモリ>

名前空間: std

参照

関連項目

C++ 標準ライブラリ内のスレッド セーフ

unique_ptr クラス

その他の技術情報

<memory> メンバー