FreeBASIC マニュアルのトップに戻る

FreeBASIC ProPgProcCtorsDtors

目次→教本→プログラマーのための案内Constructors and Destructors←オリジナル・サイト

構築子とデストラクター 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

モジュール Constructor / Destructor は、モジュール・レベルのコードの前後に実行されます。

序文:
モジュール・構築子/デストラクタと、UDTインスタンスの作成/破壊で実行される、UDT構築子/デストラクタを、混同しないでください。

モジュール・構築子/デストラクタを使うと、手続きの実行を、プログラムの開始時/終了時に指定できます。

説明
構築子/デストラクタ キーワードは、手続きをモジュール・レベルのコードの前/後に強制的に実行するために使われます。
モジュールの構築子またはデストラクタとして定義された手続きは、通常の手続きと同じ方法で使用できます(モジュールレベルのコード内から呼び出すこともできます)。
モジュールは、複数の構築子およびデストラクタ手続きを定義できます。

単一モジュールで、ターゲットシステムのビルドおよびランタイム環境に応じて:
- モジュール・構築子/デストラクタは、定義されている順序で実行することも、逆の順序で実行することもできます。
- モジュール・構築子/デストラクタは、構築子/デストラクタを持つグローバルな静的変数の前または後に実行できます。
- モジュール・構築子/デストラクタは、優先度属性を持つ他のモジュール・構築子/デストラクタの前または後に実行できます。
- 優先度属性を持つモジュール・構築子/デストラクターは、構築子/デストラクターを持つグローバルな静的変数の前または後に実行できます。

モジュールの構築子とデストラクターは、セカンダリ・モジュールまたは静的ライブラリーとしてコンパイルされた場合でも、動的ライブラリー(dll)としてロードされた場合でも、常に(メインコードのように)実行されます。

構文
[Public | Private] Sub procedure_name [Alias "external_identifier"] [()] {Constructor | Destructor} [priority] [Static]
{ procedure body }
End Sub

用法
constructor/destructor キーワードは、Sub 定義でのみ使用されます(宣言行レベルでは禁止されています)。
構築子/デストラクタとして定義された Sub は、通常の Sub と同じ方法で使用できます(モジュールレベルのコード内から呼び出すことができます)。
Sub は、空のパラメーター・リストが必要です。

優先度属性(101〜65535の整数)は、構築子/デストラクタを、優先度属性を持つ他の構築子/デストラクタに対して、特定の順序で強制的に実行するために使えます。
優先順位の値には特定の意味はなく、数値と他の構築子/デストラクターの優先順位との関係だけがあります。
101 は最高(最低)の優先度であり、優先度属性を持つ他の構築子/デストラクタに比べて最初(最後)に実行されます。

UDT のパブリック静的メンバー Sub(空のパラメーターリストを持つ)は、Sub 定義に constructor/destructor キーワードを追加することにより、モジュール・構築子/デストラクタとして定義できます。

モジュール・構築子/デストラクターから、構築子/デストラクターを持つグローバル静的オブジェクトへのアクセスは、ビルドシステムによって実行順序が異なるため、避ける必要があります。

参照
プログラマーのための案内に戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2019-09-20 10:41:26
日本語翻訳:WATANABE Makoto、原文著作者:fxm

ホームページのトップに戻る

表示-非営利-継承