#include <stdio.h>
class figure
{
public:
figure() {}
virtual ~figure() {}
virtual void area() const = 0;
};
class round : public figure
{
public:
round() {}
~round() {}
void area() const {printf("\n+++++++++++++\n");}
};
class square : public figure
{
public:
square() {}
~square() {}
void area() const {printf("\n!!!!!!!!!!!!!!\n");}
};
int main()
{
figure *pfigure1 = new round;
pfigure1->area(); //вычисление площади круга
figure *pfigure2 = new square;
pfigure2->area(); //вычисление площади квадрата
figure *pfigure3 = pfigure1;
pfigure1 = pfigure2;
pfigure2 = pfigure3;
pfigure1->area(); //вычисление площади квадрата
pfigure2->area(); //вычисление площади кр
delete pfigure1;
delete pfigure2;
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjbGFzcyBmaWd1cmUKCnsKCXB1YmxpYzoKCSBmaWd1cmUoKSB7fQoJIHZpcnR1YWwgfmZpZ3VyZSgpIHt9CgkgdmlydHVhbCB2b2lkIGFyZWEoKSBjb25zdCA9IDA7Cn07CgkKCmNsYXNzIHJvdW5kIDogcHVibGljIGZpZ3VyZQoKewoJcHVibGljOgoJcm91bmQoKSB7fQoJfnJvdW5kKCkge30KCSB2b2lkIGFyZWEoKSBjb25zdCB7cHJpbnRmKCJcbisrKysrKysrKysrKytcbiIpO30KfTsKCgpjbGFzcyBzcXVhcmUgOiBwdWJsaWMgZmlndXJlCgp7CglwdWJsaWM6CglzcXVhcmUoKSB7fQoJfnNxdWFyZSgpIHt9Cgkgdm9pZCBhcmVhKCkgY29uc3Qge3ByaW50ZigiXG4hISEhISEhISEhISEhIVxuIik7fQp9OwoJCgppbnQgbWFpbigpCgp7CgpmaWd1cmUgKnBmaWd1cmUxID0gbmV3IHJvdW5kOwoKcGZpZ3VyZTEtPmFyZWEoKTsgLy/QstGL0YfQuNGB0LvQtdC90LjQtSDQv9C70L7RidCw0LTQuCDQutGA0YPQs9CwCgpmaWd1cmUgKnBmaWd1cmUyID0gbmV3IHNxdWFyZTsKCnBmaWd1cmUyLT5hcmVhKCk7IC8v0LLRi9GH0LjRgdC70LXQvdC40LUg0L/Qu9C+0YnQsNC00Lgg0LrQstCw0LTRgNCw0YLQsAoKZmlndXJlICpwZmlndXJlMyA9IHBmaWd1cmUxOwoKcGZpZ3VyZTEgPSBwZmlndXJlMjsKCnBmaWd1cmUyID0gcGZpZ3VyZTM7CgpwZmlndXJlMS0+YXJlYSgpOyAvL9Cy0YvRh9C40YHQu9C10L3QuNC1INC/0LvQvtGJ0LDQtNC4INC60LLQsNC00YDQsNGC0LAKCnBmaWd1cmUyLT5hcmVhKCk7IC8v0LLRi9GH0LjRgdC70LXQvdC40LUg0L/Qu9C+0YnQsNC00Lgg0LrRgAoKZGVsZXRlIHBmaWd1cmUxOwoKZGVsZXRlIHBmaWd1cmUyOwoKcmV0dXJuIDA7Cgp9