IDLのstringをchar *にマッピングするとき,IDLコンパイラは,String_varクラスも生成します。これは,文字列用に割り当てられたメモリを指しているポインタを保持するクラスです。String_varオブジェクトがデストラクトされたり,スコープ外になったりすると,文字列用のメモリが自動的に解放されます。コードサンプル20-2に,String_varクラスおよびこのクラスがサポートするメソッドを示します。_varクラスの詳細については,「21.6 <class_name>_var」を参照してください。
class CORBA {
class String_var {
protected:
char*_p;
...
public:
String_var();
String_var(const String_var& var);
String_var(char *p);
~String_var();
String_var& operator=(const char *p);
String_var& operator=(char *p);
String_var& operator=(const String_var& s);
operator const char *() const;
operator char *();
char &operator[ ](CORBA::ULong index);
char operator[ ](CORBA::ULong index) const;
friend ostream& operator<<(
ostream&, const String_var&);
inline friend Boolean operator==(
const String_var& s1,
const String_var& s2);
...
};
...
};