Borland Enterprise Server VisiBrokerのIDLコンパイラは,C++にマッピングされた固定長IDL構造体に,構造体と構造体に対する_varクラスを生成します。_varクラスの詳細については,「21.6 <class_name>_var」を参照してください。
// IDL
struct example {
short a;
long b;
};
// C++
struct example {
CORBA::Short a;
CORBA::Long b;
};
class example_var
{
...
private:
example *_ptr;
};
_varクラスであるフィールドにアクセスするには,->演算子が必要となります。コードサンプル20-23は,その例を示しています。ex2がスコープ外となると,割り当てられていたメモリが自動的に解放されます。
// example構造体を宣言し,領域を初期化します。
example ex1 = { 2, 5 };
// _varクラスを宣言し,新しく作成したexample構造体を代入します。
// _varは,未初期化の領域を持つ構造体を指します。
example_var ex2 = new example;
// ex1からex2の領域を初期化します。
ex2->a = ex1.b;