E2080 Dispose 手続きはデストラクタが必要です (Delphi)
エラーと警告のメッセージ(Delphi) への移動
このエラーメッセージは Dispose へのパラメータリストの中で指定した識別子がデストラクタでないときに表示されます。
program Produce; type PMyObject = ^TMyObject; TMyObject = object F: Integer; constructor Init; destructor Done; end; constructor TMyObject.Init; begin F := 42; end; destructor TMyObject.Done; begin end; var P: PMyObject; begin New(P, Init); (*...*) Dispose(P, Init); (*<-- ここでエラーメッセージ*) end.
{ このコードでは不注意から Dispose へコンストラクタを渡した }
program Solve; type PMyObject = ^TMyObject; TMyObject = object F: Integer; constructor Init; destructor Done; end; constructor TMyObject.Init; begin F := 42; end; destructor TMyObject.Done; begin end; var P: PMyObject; begin New(P, Init); Dispose(P, Done); end.
{ Dispose へデストラクタを渡すか,第 2 引数を削除すれば解決する }