「GObject」の版間の差分

C言語の構造体には“public”、“protected”、“private”といったアクセス修飾がないので、インスタンス構造体にプライベートデータへのポインタ <code>_priv</code> がある。プライベート構造体は共通ヘッダファイルに宣言することはできるが、定義は個々の実装ファイルでのみ行われ、外部から見えないようにしている。プライベート構造体をGTypeに登録すると、自動的にオブジェクトシステムで確保される。プライベートデータが必要なとき常に <code>G_TYPE_INSTANCE_GET_PRIVATE</code> を使うようにすれば、<code>_priv</code> ポインタを構造体に含める必要はない。
 
GObjectフレームワークの欠点は、冗長性である。新たなクラスを生成するとき、型登録や各種マクロを多量にコーディングする必要があり、その多くは決まりきった形式である。GObject Builder や [http://www.jirka.org/gob.html GOB2] はこの問題に対処するツールであり、Java風の構文からコードを生成できる。GOB2 で書かれたコードはコンパイル前にC言語のコードに展開される。他にも[[C Sharp|C#]]風の文法でコーディングできる [http://live.gnome.org/Vala [Vala]] がある。
 
== 利用 ==
匿名利用者