auto_ptr Class
コントロールがブロックを離れるとリソースが自動的に破棄されるようにするリソースを中心にスマート ポインターをラップします。
unique_ptr のより可能なクラスは auto_ptrよりも優先されます。詳細については、「unique_ptr Class」を参照してください。
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オブジェクトのコンストラクター。 |
Typedef
この型は、テンプレート パラメーター Type のシノニムです。 |
メンバー関数
このメンバー関数は、格納されているポインターを返します myptr。 |
|
メンバーが null ポインターに格納されているポインターを置き換え、myptr 前に格納されているポインターを返します。 |
|
このメンバー関数は、格納されているポインター値 myptr に関数呼び出しの結果として変更したときのみ delete myptr式を評価します。これは ptrに格納されているポインターを置き換えます。 |
演算子
auto_ptr の 1 個のオブジェクトから他の状態への所有権を移譲代入演算子です。 |
|
型 auto_ptrのオブジェクトの逆参照する演算子。 |
|
メンバー アクセスを許可する演算子。 |
|
1 種類の auto_ptr から別の種類の auto_ptrにキャストします。 |
|
auto_ptr から auto_ptr_refにキャストします。 |
必要条件
ヘッダー:<memory>
名前空間: std