CTypedPtrArrayの使い方

[戻る]
ナオーバ 2002/11/18(月) 15:59:24
構造体 ELEMENT_STRUCT を定義して、
 typedef CTypedPtrArray<CPtrArray, ELEMENT_STRUCT*> CElemntArray1;
 typedef CTypedPtrArray<CObArray, ELEMENT_STRUCT*> CElemntArray2;
をしてもエラーはでません。

CObjectの派生ではない任意のオブジェクトの場合は
CPtrArray、CObArrayのどっちを指定すべきなのでしょうか?

今まではCObjectの派生オブジェクトを作成して CObArray を指定していました。
今回は構造体ですみそうなので、このような場合はCPtrArrayになるのでしょうか?

MSDNをよんでもよくわかりませんでした。

WIN2000 SP2/VC6.0 SP5/MFC使用

dairygoods 2002/11/18(月) 17:15:24
以前こんなのがありました。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200204/02040086.txt


CObArrayは、CObject*の配列の代わりとなるものです。
これに、CObjectの派生クラス以外のポインタを入れておくと言うのは、

ELEMENT_STRUCT elem;
CObject* pObjArray[10];
pObjArray[0] = (CObject*)&elem;

ELEMENT_STRUCT* pElem = (ELEMENT_STRUCT*)pObjArray[3];

のようなコードを書いているのと同じ事です。
コンパイルは通りますけど、行儀の良いコードとは言えないでしょう。

ナオーバ 2002/11/18(月) 17:35:27
すみません、上記のページも見たのですがよくわかりませんでした

CTypedPtrArrayの使い方として
 CObjectの派生オブジェクト -->CObArray
 非CObjectの派生オブジェクト-->CPtrArray
 CPtrArrayの場合はシリアライズが使えない

ッてことになるんでしょうか?

よろしくお願いします。

dairygoods 2002/11/18(月) 20:36:13
> ッてことになるんでしょうか?

そうなります。

ナオーバ 2002/11/19(火) 01:22:36
[[解決]]
ありがとうございます。

ここが曖昧だったので自信を持って使用できます。

ありがとうございました。

古いスレッドには追加発言できません。