Tools.h++ 7.0 クラスライブラリ・リファレンスマニュアル: はじめに

Copyright 1999 Rogue Wave Software
Copyright 1999 Sun Microsystems, Inc.

# はじめに

本書では、Tools.h++ のすべてのクラスと関数を説明します。Tools.h++ クラスライブラリを使ってプログラムを書く方法についてのチュートリアルは記載していません。プログラムの書き方については、『Tools.h++ 7.0 ユーザーズガイド』を参照してください。

## このマニュアルの構成

「はじめに」のすぐ後にクラス階層図が続きます。すべてのクラスをクラス階層に並べて、お互いの関係を示してあります。Tools.h++ で使用される継承構造の全体を把握するときに、このクラス階層図を参照してください。

クラス階層図に続いて、クラスをアルファベット順に説明します。各クラスの説明は、個々の継承階層を示す図式で始まり、クラスに関連するヘッダーファイルと Smalltalk の typedef を (必要に応じて) 並べる形式が続きます。形式では、クラスオブジェクトの宣言と定義と、使用される typedef も示します。形式の次に、クラスの簡単な説明と、メンバー関数と大域関数の一覧が続きます。これらの関数はその一般的な用途、たとえば「コンストラクタ」、「大域演算子」、「公開メンバー関数」などに従って分類されています。このカテゴリは、ある程度任意に分類されていますが、数多くの関数を体系化するためには有効な方法です。

### 表記上の規則

Rogue Wave クラスの名前は、RWCollectable のようにすべて RW で始まります。ボールド書体は接頭辞ではなくクラス名を強調します。クラスのインスタンスを参照するとき、たとえば、「RWCString インスタンス」ではなく「string」のように、一般的な名前で呼ぶことがあります。これは、意味が文脈から明確なときに読みやすくするためですが、曖昧さが残るときは長くても完全な名前を使います。

関数名はすべて小文字で始まり、後続の単語の先頭が大文字になります。関数名はその関数の機能をできるだけ正確に伝えようとしています。`RWCString::toLower()` は、それ自身に含まれる大文字をすべて小文字に変更します。一般的に、下線と略語は関数名には使用しません。

関数名、例、オペレーティングシステムのコマンド、数学記号、プログラムの一部分は、`<rw/stream.h>` のようにクーリエ書体で表記します。プログラム使用例における縦方向の省略符号は、プログラムの省略部分を示します。

このマニュアル全体を通じて、「自分自身」という言葉がたびたびでてきます。これは、「`*this`」と読みかえてください。

### 継承の表記

別のクラス (または他のクラス) から継承する各クラスには、継承階層を表す図式を示します。たとえば、次の図式は、クラス `A` がクラス `B` から継承することを示します。

1 つのクラスが複数のクラスから継承している場合、あるいは複数の継承レベルがある場合は、すべての継承関係を示します。次の図式は、クラス `A` が クラス `B` とクラス `C` から継承し、クラス `C` がクラス `D` から継承することを示します。

継承階層で使用する表記規則は、Rumbaugh やその他の人々が開発したオブジェクトモデリング手法 (OMT) に従っています。1

### メンバー関数

一般的なカテゴリの中で、各クラスのメンバー関数をアルファベット順に説明します。メンバー関数は、大きく次の 3 種類に分かれます。

1. クラス固有の関数。このような関数については、その関数が存在するクラスで詳細を説明します。たとえば、クラス RWBinaryTree のメンバーである `balance()` です。

2. 再定義せず基底クラスから継承した関数。このような関数については、基底クラスの定義で詳細を説明します。たとえば、クラス RWBinaryTree のメンバーである `clearAndDestroy()` です。この関数は、クラス RWCollection から継承されたものです。再定義せず継承したメンバー関数は両方の場所に存在しますが、このマニュアルでは元の定義を示します。

3. 派生クラスで再定義した関数。通常は仮想関数です。このような関数の説明では、通常、基底クラスについて触れますが、派生クラスに関連する特徴についても述べています。たとえば、クラス RWBinaryTree のメンバーである `apply()` です。

1 表記は、Gamma、Helm、Johnson、Vilssides による『デザインパターン』で使用されている表記と似ています。