题目9单选题
要编写一个程序,能够绘制指定数目的图形,图形包括圆和矩形,将来可能增加三角形、菱形等新的图形,现设计了函数drawShapes,声明如下,则选项中最合理的是:void drawShapes(Shape* list[],int n)A. 将函数drawShapes去掉,分别定义函数drawCircle和drawRectangle,并在main函数中,根据用户输入的图形类型和数目,使用if/else针对不同图形分别调用这两个函数进行绘制B. 将函数drawShapes的形参列表改为空,在函数实现中,直接根据用户输入的图形类型和数目,使用switch/case针对不同图形分别绘制C. 函数drawShapes的原型保持不变,在函数实现中,判断list中Shape*指针所指向图形的真实类型,并使用switch/case针对不同图形分别绘制D. 函数drawShapes的原型保持不变,定义类Shape及虚函数draw( ),并在子类Circle和Rectangle中override,然后在函数drawShapes的实现中,遍历list,通过list[i]->draw( )的方式,对指定数目的图形进行绘制