Share via


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 ポインタだけが削除され、ポインタが参照しているオブジェクトは削除されません。

088sck34.alert_note(ja-jp,VS.90).gifメモ :

配列を使う場合は、あらかじめ SetSize 関数で配列のサイズを確定し、そのメモリを確保します。SetSize を使用せずに要素を配列に追加すると、配列が頻繁に再割り当てされ、コピーされます。頻繁に再割り当てとコピーを行うとパフォーマンスが低下し、メモリ断片化の原因になります。

配列クラスの派生は、リストの派生と同様です。特別な目的のリスト クラスの派生の詳細については、「コレクション クラス」を参照してください。

088sck34.alert_note(ja-jp,VS.90).gifメモ :

配列をシリアル化するときは、派生クラスの実装時に IMPLEMENT_SERIAL マクロを使います。

必要条件

ヘッダー : afxcoll.h

スマート デバイス開発者のためのメモ

このクラスは、スマート デバイス プロジェクトではサポートされません。

参照

参照

CObject クラス

階層図

CStringArray クラス

CPtrArray クラス

CByteArray クラス

CWordArray クラス

CDWordArray クラス

その他の技術情報

CObArray のメンバ