CObArray クラス
更新 : 2007 年 11 月
CObject ポインタの配列をサポートします。
class CObArray : public CObject
解説
これらのオブジェクトの配列は C 言語の配列と同じですが、必要に応じて動的に拡大および縮小されます。
配列のインデックスは常に 0 から始まります。現在の上限を越えて要素を追加したときに、インデックスの上限を固定するか、配列を拡張するかどうかを指定できます。一部の要素が無効 (NULL) の場合でも、メモリは上限まで継続的に割り当てられます。
Win32 では、CObArray オブジェクトのサイズは、利用できるメモリ領域のサイズにのみ制限されます。
C 言語の配列と同じように、CObArray の要素にインデックスを使ってアクセスする時間は一定で、配列のサイズとは無関係です。
CObArray には、シリアル化および配列要素のダンプをサポートする IMPLEMENT_SERIAL マクロが組み込まれています。CObject ポインタの配列に格納するときは、オーバーロードされた出力ストリーム演算子 (<<) または Serialize メンバ関数を使います。各 CObject 要素は、配列のインデックスと共に順次シリアル化されます。
配列の各 CObject 要素をダンプするには、CDumpContext オブジェクトの深さの引数を 1 以上に設定します。
CObArray オブジェクトが削除されるとき、または各要素が削除されるときは、CObject ポインタだけが削除され、ポインタが参照しているオブジェクトは削除されません。
メモ : |
---|
配列を使う場合は、あらかじめ SetSize 関数で配列のサイズを確定し、そのメモリを確保します。SetSize を使用せずに要素を配列に追加すると、配列が頻繁に再割り当てされ、コピーされます。頻繁に再割り当てとコピーを行うとパフォーマンスが低下し、メモリ断片化の原因になります。 |
配列クラスの派生は、リストの派生と同様です。特別な目的のリスト クラスの派生の詳細については、「コレクション クラス」を参照してください。
メモ : |
---|
配列をシリアル化するときは、派生クラスの実装時に IMPLEMENT_SERIAL マクロを使います。 |
必要条件
ヘッダー : afxcoll.h
スマート デバイス開発者のためのメモ
このクラスは、スマート デバイス プロジェクトではサポートされません。