構造体 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使用
以前こんなのがありました。
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];
のようなコードを書いているのと同じ事です。
コンパイルは通りますけど、行儀の良いコードとは言えないでしょう。
すみません、上記のページも見たのですがよくわかりませんでした
CTypedPtrArrayの使い方として
CObjectの派生オブジェクト -->CObArray
非CObjectの派生オブジェクト-->CPtrArray
CPtrArrayの場合はシリアライズが使えない
ッてことになるんでしょうか?
よろしくお願いします。
> ッてことになるんでしょうか?
そうなります。
ありがとうございます。
ここが曖昧だったので自信を持って使用できます。
ありがとうございました。