4

C++Builder で Vcl アプリケーションを作成すると、フォームが自動作成され、次のような行が追加されます。

Application->CreateForm(__classid(Tmain), &main);

私はフォームの作成に を使用する傾向があるnewため、メイン フォームの行を除いて、これらの行をすべて削除します (議論については、 Rob Kennedyによるこの記事を参照してください)。

私が最近発見したことは、CreateForm() が純粋な仮想メソッドを含むフォームを非常にうまく作成するということです。これにより、実行時に「純粋な仮想関数が呼び出されました」というエラーが発生する可能性があります。対照的に、を使用してフォームを作成するとnew、コンパイル時に「抽象クラスのインスタンスを作成できません」というエラーが発生します。

new実行時エラーよりもコンパイル時エラーの方が望ましいので、メインフォームを含むすべてのフォームで使用できるかどうか疑問に思う必要がありますか? Application.CreateForm()舞台裏で他に何が行われていますか?これを複製できますか?

4

1 に答える 1