2.1 具体クラス

具体クラスは、以下のクラスから構成されています。:

  • 第 3 章から第 5 章で説明されている、日付、時刻、文字列などを表わす単純クラス
  • 第 11 章で説明されているテンプレートベースのコレクションクラス
  • 第 12 章で説明されている、プリプロセッサ <generic.h> を使う汎用コレクションクラス

2.1.1 単純クラス

Tools.h++ には、軽量化された単純クラスが多く含まれています。軽量化されたクラスとは、時間のかからない初期設定子とコピーコンストラクタを持つクラスを意味します。単純クラスには、RWDate (日付)、 RWTime(時刻、各種の時間帯および地域に対応)、RWCString (シングルおよびマルチバイト文字列)、RWWString (ワイド文字)、および RWCRegexp または RWCRexpr (正規表現) などがあります。これらのクラスのほとんどは、4バイト以下で保持することができ、また非常に簡単なコピーコンストラクタ(通常1ビットコピー)を持ち、仮想関数は持っていません。Tools.h++ Class Referenceを参照してください。

2.1.2 テンプレートベースのコレクションクラス

テンプレートベースのコレクションクラス (略してテンプレート) には、速度と型保証という利点があります。しかし、コードサイズを減らすためには、あまり使わないようにしてください。テンプレートは多くの異なる型で使用できますが、各型がまったく新しいクラスを生成するために、コードサイズが大きくなる可能性があります。使用コンパイラで標準 C++ ライブラリが使える場合は、標準 C++ ライブラリをもとにしている Tools.h++ テンプレートベースコレクションを使用できます。使用コンパイラで標準 C++ ライブラリを使えない場合でも、11.3.1節および 11.10 節に説明されている、サブセットのテンプレートを使用できます。

2.1.3 汎用コレクションクラス

汎用コレクションクラスは、C++ コンパイラに付属しているプリプロセッサマクロ<generic.h> を使用するクラスです。このクラスは、テンプレートに対応していないコンパイラに対しては、型保証がされているために、テンプレートとほとんど同じように扱えます。このため、移植性が高いとも言えます。ただし、プリプロセッサにかなり依存しているため、この汎用コレクションクラスを含むコードで、デバッガを使用することが困難になる場合があります。さらに詳しくは、第 12 章を参照してください。

この記事の投稿者: επιστημη