我们需要编写一个图形相关的应用程序,并处理大量图形(Shape)信息,图形有矩形(Rectangle)、正方形(Square)、圆形(Circle)等种类。应用程序需要计算这些图形的面积,并且可能需要在某个设备上进行显示(使用在标准输出上打印信息的方式作为示意)。
(1)请使用面向对象的设计方法对以上需求进行设计,编写可能需要的类及其实现。
(2)请给出实现以上功能的示例性代码,从某处获取图形信息并且进行计算和显示。
这道题主要考察应聘者对基类、派生类、重载、封装等知识的整体理解和把控能力,涉及的知识点比较多,对于C++初学者还是有一定难度的。
先来看第一道小题,我们需要使用面向对象的设计方法来进行类的封装和实现。根据题目所述,图形有矩形(Rectangle)、正方形(Square)、圆形(Circle)等种类,那么,如何进行封装呢?矩形、正方形、圆形虽然形状不同,但它们都有一些基本的共同的属性,比如:具有周长、面积等性质。因此,我们可以先封装一个图形的基类,在这个基类中定义一些公用的属性和方法,具体可参考下面的示例代码。<