次の方法で共有


CObArray クラス

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

参照

参照

CObject クラス

階層図

CStringArray クラス

CPtrArray クラス

CByteArray クラス

CWordArray クラス

CDWordArray クラス

その他の技術情報

CObArray のメンバー