#include <iostream>
using namespace std;
class Shape
{
public:
    Shape();
    virtual void WhereAmI();
};
 
class Rect : public Shape
{
public:
    Rect();
    int rekt;
    virtual void WhereAmI();
};
 
Shape::Shape()
{}
 
void Shape::WhereAmI()
{
    std::cout << "Now I am in class Shape" << std::endl;
}
 
Rect::Rect()
{}
 
void Rect::WhereAmI()
{
    std::cout << "Now I am in class Rect" << std::endl;
}
 
int main() {
   
    // В чем заключается отличие 1) и 2)
 
    Shape* pShapes = new Rect[10];
    Rect* pRects = new Rect[10];
 
    //Попробуйте вызвать метод WhereAmI() для каждого элемента обоих массивов -
    //в чем заключается проблема???
 
    for (int i = 0; i < 10; i++)
    {
        pShapes[i].WhereAmI();
        pRects[i].WhereAmI();      
    }
 
 	
    //Освободите динамически захваченную память
    delete[] pShapes;
    delete[] pRects;
 
    return 0;
}