#include <iostream>
using namespace std;
class scope{
public:
virtual void draw() = 0;
};
class circle:public scope{
public:
void draw(){cout<<"draw circle.";}
};
class triangle:public scope{
public:
void draw(){cout<<"draw triangle.";}
};
class geoobj{
public:
geoobj(scope* _obj){_obj->draw();}
};
int main(){
geoobj test(new circle());
geoobj test2(new triangle());
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmNsYXNzIHNjb3BlewogIHB1YmxpYzoKICB2aXJ0dWFsIHZvaWQgZHJhdygpID0gMDsKfTsKY2xhc3MgY2lyY2xlOnB1YmxpYyBzY29wZXsKICBwdWJsaWM6CiAgdm9pZCBkcmF3KCl7Y291dDw8ImRyYXcgY2lyY2xlLiI7fQp9OwpjbGFzcyB0cmlhbmdsZTpwdWJsaWMgc2NvcGV7CiAgcHVibGljOgogIHZvaWQgZHJhdygpe2NvdXQ8PCJkcmF3IHRyaWFuZ2xlLiI7fQp9OwpjbGFzcyBnZW9vYmp7CiAgcHVibGljOgogIGdlb29iaihzY29wZSogX29iail7X29iai0+ZHJhdygpO30KfTsKIAppbnQgbWFpbigpewogIGdlb29iaiB0ZXN0KG5ldyBjaXJjbGUoKSk7CiAgZ2Vvb2JqIHRlc3QyKG5ldyB0cmlhbmdsZSgpKTsKICByZXR1cm4gMDsKfQ==