64,651
社区成员
发帖
与我相关
我的任务
分享
class Shape
{
public:
Shape() { cout << "Shape()\n"; }
~Shape() { cout << "~Shape()\n"; }
virtual void draw() = 0;
};
class Circle : public Shape
{
public:
virtual void draw()
{
cout << "Circle\n";
}
};
class Square : public Shape
{
public:
virtual void draw()
{
cout << "Square\n";
}
};
shared_ptr<Shape> GetShape(const string& t)
{
Shape* p = 0;
if(t == "Circle")
p = new Circle;
else if(t == "Square")
p = new Square;
return shared_ptr<Shape>(p);
}