| Interstage Application Server アプリケーション作成ガイド (CORBAサービス編) |
目次
索引
![]()
|
| 第5章 アプリケーションの開発(C++言語) | > 5.6 varクラス |
Any_varクラスはAny型データを扱うためのいくつかのメンバ関数を提供します。
class Any_var {
public:
Any_var(); // デフォルトコンストラクタ
Any_var( Any *); // Any*コンストラクタ
Any_var( const Any_var & ); // コピーコンストラクタ
~Any_var(); // デストラクタ
Any_var &operator=( Any * ); // Any*代入演算子
Any_var &operator=( const Any_var & ); // 代入演算子
Any *operator->(); // ポインタ演算子
operator Any*() const; // 交換演算子
private:
Any *_ptr;
};
|
Any_varクラスのメンバ |
意味 |
|
デフォルトコンストラクタ |
インスタンス生成時、_ptrを0に初期化します。 |
|
Any*コンストラクタ |
インスタンス生成時、パラメタで指定されたAnyポインタを_ptrに代入します。 |
|
コピーコンストラクタ |
インスタンス生成時、指定されたパラメタの_ptrのデータのコピーを作成し、自身の_ptrに設定します。 |
|
デストラクタ |
_ptrの指す領域を解放します。 |
|
Any* 代入演算子 |
右辺で指定されたAny*ポインタを_ptrに代入します。 |
|
代入演算子 |
右辺で指定されたAny_varの_ptrに設定されているデータのコピーを作成し、そのポインタを_ptrに設定します。 |
|
ポインタ演算子 |
_ptrに設定されているデータを取り出します。 |
|
交換演算子 |
_ptrに設定されているデータを取り出します。 |
デフォルトコンストラクタは、インスタンス生成時、_ptrに0を設定します。デフォルトコンストラクタの使用例と処理内容を以下に示します。
CORBA::Any_var any; // デフォルトコンストラクタが起動されます。
CORBA::Any_var::CORBA::Any_var()
{
_ptr = 0;
}
Any*コンストラクタは、インスタンス生成時、パラメタで指定されたAnyポインタを_ptrに代入します。Any*コンストラクタの使用例と処理内容を以下に示します。
CORBA::Any *data = new CORBA::Any();
CORBA::Long x = 3;
(*data) <<= x;
CORBA::Any_var any(data); // Any*コンストラクタが起動されます。
CORBA::Any_var::Any_var( Any *p )
{
_ptr = p;
}
コピーコンストラクタは、インスタンス生成時、パラメタで指定されたAny_var変数に設定されている_ptrのコピーを作成し、自身の_ptrに代入します。コピーコンストラクタの使用例と処理内容を以下に示します。
CORBA::Any *data = new CORBA::Any();
CORBA::Long x = 3;
(*data) <<= x;
CORBA::Any_var any(data); // Any*コンストラクタが起動されます。
CORBA::Any_var any2( any ); // コピーコンストラクタが起動されます。
CORBA::Any_var::Any_var( const CORBA::Any_var &r )
{
... // rの_ptrを取り出し、そのコピーを_ptrに設定します。
}
デストラクタは、インスタンス解放時、_ptrに設定されている領域を解放します。デストラクタの使用例と処理内容を以下に示します。
func()
{
CORBA::Any *data = new CORBA::Any();
CORBA::Long x = 3;
(*data) <<= x;
CORBA::Any_var any(data); // Any*コンストラクタが起動されます。
CORBA::Any_var *any2 = new Any_var( any );
// コピーコンストラクタが起動されます。
delete any2; // デストラクタが起動されます。
} // 自動変数anyの解放時にデストラクタが起動されます。
CORBA::Any_var::~Any_var()
{
delete _ptr;
}
Any*代入演算子は、右辺で指定されたAny*ポインタを_ptrに設定します。すでに_ptrにデータが設定されている場合には、解放した後、処理を行います。Any*代入演算子の使用例と処理内容を以下に示します。
CORBA::Any_var var_data;
CORBA::Any *data = new CORBA::Any();
CORBA::Long x = 3;
(*data) <<= x;
var_data = data; // Any *代入演算子が起動されます。
CORBA::Any_var::operator=( Any *p )
{
if( _ptr )
delete _ptr;
_ptr = p;
}
CORBA::Any_var::operator=( const Any_var &r )
{
if( _ptr )
delete _ptr;
... // rの_ptrを取り出し、そのコピーを_ptrに設定します。
}
代入演算子は、右辺で指定されたAny_varのptrに設定されているデータのコピーを作成し自身の_ptrに代入します。すでに_ptrにデータが設定されている場合には、解放した後、処理を行います。代入演算子の使用例と処理内容を以下に示します。
CORBA::Any_var var_data;
CORBA::Any *data = new CORBA::Any();
CORBA::Long x = 3;
(*data) <<= x;
var_data = data; // Any *代入演算子が起動されます。
CORBA::Any_var var_data2 = var_data;
// 代入演算子が起動されます。
ポインタ演算子は、_ptrに設定されているポインタを返します。ポインタ演算子の使用例と処理内容を以下に示します。
CORBA::Any_var var_data;
CORBA::Any *data = new CORBA::Any();
CORBA::Long x = 3;
(*data) <<= x;
CORBA::Long *p = var_data->value();
// ポインタ演算子が起動され、CORBA::Any *データが取り出され、
// そのCORBA::Any*データに対してvalueメソッドを起動します。
CORBA::Any_var::operator->()
{
return _ptr;
}
交換演算子は、_ptrに設定されているポインタを返します。交換演算子の使用例と処理内容を以下に示します。
CORBA::Any_var var_data;
CORBA::Any *data = new CORBA::Any();
CORBA::Long x = 3;
(*data) <<= x;
CORBA::Any *p = (CORBA:;Any*)var_data;
// 交換演算子が起動され、CORBA::Any *データが取り出されます。
CORBA::Any_var::operator CORBA::Any*()
{
return _ptr;
}
目次
索引
![]()
|