私は3つのクラスを持っています。シェイプはベースクラス、長方形、三角形です。ヒープメモリをC++で使用
派生クラスからシェイプのポインタに4つのオブジェクトを保存します。
Shape* sh1=new Shape[4];
Rectangle aR(2,3);
Rectangle bR(4,5);
Triangle aT(2,3);
Triangle bT(4,5);
sh1[0]=&aR;
sh1[1]=&bR;
sh1[2]=&aT;
sh1[3]=&bT;
しかし、私はこれで問題があり、 はどのように私はそれを修正することができますか?
私はこの
Shape* sh1[4];
Rectangle aR(2,3);
Rectangle bR(4,5);
Triangle aT(2,3);
Triangle bT(4,5);
sh1+0=&aR;
sh1+1=&bR;
sh1+2=&aT;
sh1+3=&bT;
を行うことができますが、なぜ私は最初の方法を行うことはできませんか?
_'sh1の[4] = &bT; '_ UBは、両方のケースであること。覚えて –