私は標準的な手順を使用のDelphiアプリケーションでの私のカスタムクラスを作成する場合:Delphiで作成するすべてのクラスにはデストラクタが必要ですか?
TCustomClass = Class
private
var1,var2 : integer/string/Real/Boolean...
procedure P1...
function F1...
public
constructor Create;
end;
...
CustomClass := TCustomClass.create;
を、私は、アプリケーションが終了したとき、私はいつも自由にリソースを自動的にもデストラクタプロシージャを作成するために持っているか、しているか知りたいですか?
私は常にアプリケーションを所有者として使用します。まったく自己または無しではありません。誰かがポインタを使用したときを除いて、インターネットで見たクラスでデストラクタを宣言している人がいました。事前に
Should every class have a virtual destructor?
ありがとう:
はこの質問で説明したようにC++のようにDelphiで同じデストラクタの背後にあるロジックです。
EDIT1: 無料コンサルティングは、私は変数の一つは、あなたが割り当てられたメモリのようなものを、クリーンアップする必要がある場合にのみ、デストラクタを持っている必要がありますTBitmapのタイプ
Delphiのすべてのクラスにはすでに仮想デストラクタがあります。問題は、それを上書きする必要があるかどうかです。スーパークラスによってファイナライズされていない、このクラスによって取得されたリソースのクラスをファイナライズする必要がある場合は、オーバーライドします。 –
質問にTBitmapメンバーを使用しているという事実を含めるべきです。 –