2章: クラスの概要
- 2.1 具体クラス
- 2.2 抽象基底クラス
- 2.3 Smalltalk_likeコレクションクラス
- 2.4 共通メンバ関数
- 2.5 メモリの割り当てと解放
- 2.6 情報の流れ
- 2.7 マルチスレッド保証
- 2.8 8 ビット対応
- 2.9 埋め込みヌル
- 2.10 インデックス付け
- 2.11 バージョン
この章では、Tools.h++の概要とクラス間の共通点について説明します。
Tools.h++は、インタフェースではなく実装を提供します。つまり、Tools.h++ は、主に実装やセマンティクスにおいて他のクラスから独立して個々に使用できる具体クラスの大規模で豊富なセットから構成されています。これらは一度に1 つまたは 2 つ引き出して使うことができます。具体クラスは、Tools.h++の心臓部です。
Tools.h++には、抽象基底クラスも含まれています。抽象基底クラスは永続性、国際化、その他の機能、およびこれらのインタフェースを実装する数多くの実装クラスを定義します。実装クラスは公開ですが、非公開クラスのように動作します。実装クラスは一般使用を目的として設計されていないため、このマニュアルには記載されていません。
Tools.h++のクラスの中には、コレクションクラスまたはコレクションとしてさらに分類されているものがあります。Tools.h++ の主な機能であるコレクションクラスは、3 つのグループに分けられます。
- コレクションクラステンプレート、または、単にテンプレートと呼ばれるテンプレートベースのコレクションクラス
- 汎用コレクションクラス
- Smalltalk_likeコレクションクラス
コレクションクラスはその実装にはかかわらず、SortedCollection、Dictionaries、Bags、Sets など、一般に Smalltalk の命名規則と意味論モデルに従っています。>これらは、似たようなインタフェースを使用するため、簡単に置き換えることができます。テンプレートベースコレクションおよび汎用コレクションはどんな種類のオブジェクトも持つことができます。Smalltalk 類同コレクションでは収集されたオブジェクトすべてが RWCollectable を継承していなければなりません。
プログラムで使用するコレクションクラスを決定することも、重要な作業です。どのコレクションが目的に最適かを判断する手掛かりとして、付録 A の「コレクションの選択方法」を参照してください。
この章の最後にある表 7 には、Tools.h++ 公開クラスすべてのクラス階層が示されています。Tools.h++ には、これらの公開クラスに加え、内部使用のためにその他のクラスが含まれています。