E2079 New 手続きはコンストラクタが必要です (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(Delphi) への移動

このエラーメッセージは New へのパラメータリストの中で指定した識別子がコンストラクタでないときに表示されます。


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, Done);              (*<-- ここでエラーメッセージ*)
end.

{ 不注意からコンストラクタでなくデストラクタを指定して New を呼び出した }


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);
end.

{ New 標準関数には必ずコンストラクタを指定するか,追加引数をまったく指定しないようにする }