Delphiでクラスを作る際には、すべてのクラスの派生元となる TObject を理解するのが良さそう。

オブジェクトを生成すると、大体こんな順序でメソッドが呼び出される。

constructor Create;
procedure AfterConstruction;

オブジェクトを破棄する際には、この順序でメソッドが呼び出される。

procedure BeforeDestruction;
destructor Destroy; virtual;

Delphi6のヘルプによると、クラスが C++Builder から使用される場合は AfterConstruction と BeforeDestruction をオーバーライドすることが重要と書いてある。C++Builderから使われるかどうかに関係なく、親クラスのコンストラクタに渡される引数を使いたいとき以外は、AfterConstruction と BeforeDestruction を利用するほうがいいような気がする。と思ったが、そのクラスが継承されてしまった場合は、AfterConstruction, BeforeDestruction の使用は危険なのか? 呼び出される順序について何を考慮すべきなんだ? あー、まったくわからん。

tags: Delphi zurazure

Posted by NI-Lab. (@nilab)