图形基类与派生:矩形、圆形与正方形的定义与实现

1星 需积分: 26 18 下载量 93 浏览量 更新于2024-09-13 4 收藏 1KB TXT 举报
"本资源介绍了如何在C++中使用面向对象编程的概念,通过声明一个名为`Shape`的图形基类,并在此基础上派生出`Rectangle`、`Circle`和`Square`三个子类。这些类都涉及基本的图形属性和操作,如面积(Area)和周长(Perimeter)的计算。 首先,我们定义了基类`Shape`,它具有公共成员函数`getArea()`和`getPerimeter()`,这两个函数作为虚函数,允许子类根据自己的特性来实现。接着,`Rectangle`类继承自`Shape`,并且添加了`height`和`width`成员变量,用于表示矩形的尺寸。`Rectangle`类重写了`getArea()`和`getPerimeter()`方法,分别计算矩形的面积和周长。此外,`Rectangle`类还提供了`print()`函数,用于输出矩形的宽和高。 `Square`类进一步继承自`Rectangle`,作为正方形的特例,其构造函数中将`height`和`width`设置为相同的值,简化了正方形的属性设置。同时,`Square`类继承了父类的`print()`方法,但重写了输出格式,仅显示边长。 `Circle`类是另一个派生自`Shape`的类,用于表示圆形。它拥有`x`、`y`坐标和`radius`成员变量,构造函数接受圆心坐标和半径。`Circle`类实现了`getArea()`函数,使用π乘以半径的平方来计算圆形的面积。 整个程序的结构体现了面向对象设计中的封装、继承和多态性原则,使得代码结构清晰,易于维护和扩展。通过实例化这些类并调用它们的方法,可以创建不同类型的图形对象,并执行相应的操作。例如,可以创建一个`Rectangle`对象,调用其`getArea()`和`print()`方法,得到矩形的面积和尺寸信息。这展示了如何在实际编程中利用基类和派生类来处理图形的通用性和特殊性。"