Hitachi

VisiBroker Version 5 Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス


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) 固定長構造体の使用

_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;