お世話になっております。
Win2K VC++6.0 SP5 MFC使用です。
クラス A を定義後、CTypedPtrArray で CAArray を定義。
(typedef CTypedPtrArray<CPtrArray, A*> CAPtrArray;)
クラス A から A1, A2 を派生。A1, A2 で new したあと、
Add で CAPtrArray へ追加。
で参照するとき、
CA1* pA1 = dynamic_cast<CA*>(oAPtrArray,[i]);
とやると例外が発生してしまいます。
(bad_castではなく、Access Violation)
デバッガで見ると、ポインタの中身は正しく入っているようですが……。
クラスAが static データメンバを持っているのがいけないのかな?
上記のような経験をお持ちの方、御教唆いただけると幸いです。
すいません、肝心なとこを書き間違えました。
> CA1* pA1 = dynamic_cast<CA*>(oAPtrArray,[i]);
CA1* pA1 = dynamic_cast<CA1*>(oAPtrArray,[i]);
です。
実際のソースコードはもちろん下でやってますが、例外が発生してしまいます。
> oAPtrArray,[i]
この ',' はどういう意味ですか?
> > oAPtrArray,[i]
>
> この ',' はどういう意味ですか?
すいません、それも書き間違いです。
実際は、oAPtrArray[i]です。
RTTIを有効にして行ったところうまく行きました。
お騒がせしました。
フライング申し訳ない。
> RTTIを有効にして行ったところうまく行きました。
げ。無効だったワケ?
# なんだかなー
解決チェック