#include <iostream>
using namespace std;
class A
{
public:
virtual void rysuj() { cout << "A\n"; }
};
class B : public A
{
public:
void rysuj() { cout << "B\n"; }
};
class C : public A
{
public:
void rysuj() { cout << "C\n"; }
};
void foo(A* arg, size_t size)
{
for(size_t i = 0; i < size; i++)
arg[i].rysuj();
}
int main()
{
B *b = new B[5];
C *c = new C[5];
foo(b, 5);
foo(c, 5);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApjbGFzcyBBCnsKcHVibGljOgoJdmlydHVhbCB2b2lkIHJ5c3VqKCkgeyBjb3V0IDw8ICJBXG4iOyB9Cn07CgpjbGFzcyBCIDogcHVibGljIEEKewpwdWJsaWM6Cgl2b2lkIHJ5c3VqKCkgeyBjb3V0IDw8ICJCXG4iOyB9Cn07CgpjbGFzcyBDIDogcHVibGljIEEKewpwdWJsaWM6Cgl2b2lkIHJ5c3VqKCkgeyBjb3V0IDw8ICJDXG4iOyB9Cn07Cgp2b2lkIGZvbyhBKiBhcmcsIHNpemVfdCBzaXplKQp7Cglmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQoJCWFyZ1tpXS5yeXN1aigpOwp9CgppbnQgbWFpbigpCnsKCUIgKmIgPSBuZXcgQls1XTsKCUMgKmMgPSBuZXcgQ1s1XTsKCglmb28oYiwgNSk7Cglmb28oYywgNSk7CgkJCglyZXR1cm4gMDsKfQ==