class CBase { int a; };
class CDerived : public CBase { int b; };
smart_ptr<CDerived> pDerived;
pDerived.AddArray(new CDerived[100]);
// 基底クラスに配列ポインタをキャスト
smart_ptr<CBase> pBase;
pBase.UpCase(pDerived);
// 何と驚くべきことに、これは、正しくアクセスできる
pBase[30]->a = 100;
|