20.8.2 可変長構造体
可変長のメンバを持つ構造体か,または固定長のメンバを持つ構造体かによって,C++で生成するコードが異なります。コードサンプル20-21に示したexample構造体を可変長にした例を,コードサンプル20-24〜20-25に示します。ここでは,可変長構造体に変換するため,longメンバがstringと入れ替えられ,オブジェクトリファレンスが追加されています。
- コードサンプル20-24 IDL内の可変長構造体定義
// IDL interface ABC { ... }; struct vexample { short a; ABC c; string name; };
- コードサンプル20-25 可変長構造体のC++へのマッピング
// C++ struct vexample { CORBA::Short a; ABC_var c; CORBA::String_var name; vexample& operator=(const vexample& s); }; class vexample_var { ... };
ABCオブジェクトがABC_varクラスにマッピングされています。同様に,nameというstringがCORBA::String_varクラスにマッピングされます。また,可変長構造体の代入演算子も生成されます。
- 〈この項の構成〉