20.8.1 固定長構造体

Borland Enterprise Server VisiBrokerのIDLコンパイラは,C++にマッピングされた固定長IDL構造体に,構造体と構造体に対する_varクラスを生成します。_varクラスの詳細については,「21.6 <class_name>_var」を参照してください。

コードサンプル20-21 IDL内の固定長構造体定義

// IDL
struct example {
   short a;
   long b;
};

コードサンプル20-22 固定長IDL構造体のC++へのマッピング

// C++
struct example {
   CORBA::Short a;
   CORBA::Long b;
};

class example_var
{
   ...
   private:
   example *_ptr;
};

<この項の構成>
(1) 固定長構造体の使用

(1) 固定長構造体の使用

_varクラスであるフィールドにアクセスするには,->演算子が必要となります。コードサンプル20-23は,その例を示しています。ex2がスコープ外となると,割り当てられていたメモリが自動的に解放されます。

コードサンプル20-23 example構造体およびexample_varクラスの使用

// example構造体を宣言し,領域を初期化します。
example ex1 = { 2, 5 };

// _varクラスを宣言し,新しく作成したexample構造体を代入します。
// _varは,未初期化の領域を持つ構造体を指します。
example_var ex2 = new example;

// ex1からex2の領域を初期化します。
ex2->a = ex1.b;