C++基类与派生类示例:圆与正方形面积计算

需积分: 41 7 下载量 82 浏览量 更新于2024-09-08 1 收藏 930B TXT 举报
这段C++代码示例展示了基类与派生类的概念,以及如何在实际问题中应用这些概念来计算不同形状的面积。主要内容分为两个部分:一个抽象基类Shape,以及两个派生类Circle和Square。 首先,我们有一个名为"Shape"的基类,它定义了一个纯虚函数`area()`,这是为了确保所有派生类都必须实现这个方法。纯虚函数没有具体实现,仅声明其存在,使得Shape成为一个抽象类。当创建Shape对象时,由于`area()`未被实现,会抛出编译错误,强迫子类提供自己的面积计算逻辑。 接着是`Circle`类,它是Shape的派生类。它继承了Shape类,并重写了`area()`方法。这个方法计算圆的面积,使用公式πr²,其中`r`是圆的半径。构造函数`Circle(double myr)`接收圆的半径作为参数,并将其存储在成员变量`R`中,以供后续计算使用。 另一个派生类是`Square`,它同样继承自Shape。Square类有五个成员变量:中心点的x和y坐标(X, Y),边长A和B,以及用于计算对角线长度的临时变量L。`area()`方法计算正方形的面积,通过计算两邻边之间的距离并平方得到。构造函数`Square(double x, double y, double a, double b)`接收正方形的中心点坐标和边长作为输入。 在`func()`函数中,传入一个Shape类型的指针,并调用`area()`方法打印出相应形状的面积。在`main()`函数中,首先创建一个Circle对象`c`,然后调用`func(c)`来计算并显示圆的面积。接着,创建一个Square对象`s`,并再次调用`func(s)`来计算并显示正方形的面积。 通过这个例子,我们可以看到基类Shape的作用是为具有共同特性的形状提供通用接口,而派生类则可以扩展这些特性并实现特定的计算逻辑。这种面向对象的设计允许程序更加模块化和易于维护,适用于处理各种形状的面积计算问题。