13.1.5 定数

OMG IDLの定数は、C++のconst定義にマッピングされます。たとえば、次のOMG IDL定義を考えます:

 // OMG IDL
const string CompanyName = “BEA Systems Incorporated”;
module INVENT
{
const string Name = “Inventory Modules”;
interface Order
{
const long MAX_ORDER_NUM = 10000;
};
};

この定義は、次のようにC++にマッピングされます:

 // C++
const char *const
CompanyName = “BEA Systems Incorporated”;
. . .
class INVENT
{
static const char *const Name;
. . .
class Order : public virtual CORBA::Object
{
static const CORBA::Long MAX_ORDER_NUM;
. . .
};
};

最上位の定数は、生成された.hインクルード・ファイルで初期化されます。ただし、モジュールとインタフェースの各定数は、生成されたクライアント・スタブ・モジュールで初期化されます。

次に、前の例で定義したMAX_ORDER_NUM 定数への有効なリファレンスの例を示します:

CORBA::Long accnt_id = INVENT::Order::MAX_ORDER_NUM;