AP
Size: a a a
AP
std::shared_ptr<Figure> CreateFigure(std::istream& stream)
{
std::string name;
stream >> name;
if (name == "RECT")
{
uint16_t width, height;
stream >> width >> height;
return std::make_shared<Rect>(width, height);
}
else if (name == "TRIANGLE" )
{
uint16_t a, b, c;
stream >> a >> b >> c;
return std::make_shared<Triangle>(a, b, c);
}
else if (name == "CIRCLE")
{
uint16_t radius;
stream >> radius;
return std::make_shared<Circle>(radius);
}
return nullptr;
}
AP
AP
AP
AP
AP
AP
AP
AP
AP
G
AB