C 構造の再利用とオブジェクト・タイプ

オブジェクト・タイプは、再利用、複数インスタンス化、および動的インスタンス化をサポートします。 本来、オブジェクト・タイプは、Abstract データ型 (ADT) です。 これらは、さまざまなコンテキストでインスタンス化できるオブジェクトのテンプレートを指定します。

オブジェクト・タイプは、オブジェクトの宣言ファイル内に、固有の型定義を使用した C 構造に生成されます。 型定義は、オブジェクトを表す struct に型の別名を宣言します。 型名は、接尾辞を含まないオブジェクト・タイプの名前で構成されます。 例えば、以下の構造と型定義が、オブジェクト・タイプ B のために生成されます。

typedef struct B B;
struct B {
   /* data members of B */
};
/* operations of B */

B は明示タイプであるため、他のオブジェクトを B の観点から定義することができます。 オブジェクト・タイプには、宣言ファイルと実装ファイルの両方が生成されます。 オブジェクト・タイプに対して、作成、初期設定、クリーンアップ、および破棄のすべての操作が自動的に生成されます。

B を所有するパッケージの宣言ファイルにタイプ B は宣言されますが、タイプ B のオブジェクトがインスタンス化されるまで B のメモリーは割り振られません。

オブジェクト・タイプは、システムの初期設定時に静的にインスタンス化されるか、あるいは、実行中に動的にインスタンス化されます (デフォルトは動的です)。 したがって、オブジェクト・タイプのインスタンスが、システムとは異なるライフ・スパンを持つ可能性があります。 詳細については、動的メモリー割り振りを参照してください。


フィードバック