System.TObject.Destroy
Delphi
destructor Destroy; virtual;
C++
__fastcall virtual ~TObject(void);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
destructor | public | System.pas systobj.h |
System | TObject |
説明
オブジェクトインスタンスを破棄します。
Destroy を直接呼び出さないでください。かわりに,Free メソッドを呼び出してください。Free メソッドはオブジェクトの参照が nil ではないことを確認した場合に Destroy メソッドを呼び出します。
TObject で定義されている Destroy メソッドは,メモリの割り当てを解除します。下位オブジェクトでは通常,特定の種類のオブジェクトに合わせてカスタマイズされたデストラクタを定義します。
下位オブジェクトのクラスで Destroy メソッドを宣言するときには必ず override 指令を追加し,継承された Destroy メソッドをオーバーライドするメソッドの最後の文として呼び出します。Destroy メソッドは仮想メソッドなので,継承された動作が正しく実行されるようにするにはそれをオーバーライドします。
メモ: コンストラクタから例外が発生するとデストラクタが呼び出され,初期化が完了せずに部分的に作成されたオブジェクトインスタンスが破棄されます。したがって値が 0 になっている場合もあるため,デストラクタは,リソース(ハンドルなど)を解放するときは,それらのリソースが実際に割り当てられていることを事前にチェックする必要があります。
Destroy は,オブジェクトのコンストラクタ内で作成された(つまり,コンストラクタによって割り当てられた)すべてのサブオブジェクトに対して Free メソッドを呼び出すように実装する必要があります。Destroy メソッドとは異なり,Free メソッドは nil であるオブジェクトを破棄する場合に安全策を講じます。