C++编程实践:圆与圆柱体类设计与测试

需积分: 5 2 下载量 154 浏览量 更新于2024-08-11 收藏 19KB DOCX 举报
本篇文档是关于C++编程练习的第三部分,主要涉及类的继承和面向对象的设计。练习的核心内容是创建三个类:点类Point、圆类Circle和圆柱体类Cylinder。这些类的设计旨在展示C++中的单一继承机制以及如何在派生类中扩展和重写基类的功能。 首先,点类Point作为基础,包含了保护数据成员x和y,表示点的坐标。使用保护访问权限(即protected)是为了确保这些数据成员仅能被子类或友元类访问,提供了封装性,防止外部直接修改点的坐标。同时,提供了一系列的成员函数,如构造函数、拷贝构造函数、设置和获取坐标的方法(setPoint和getPoint)、以及显示坐标的方法show()。 接着,圆类Circle继承自点类,增加了一个半径属性radius。它的构造函数接受三个参数,用于初始化坐标和半径,同样有拷贝构造函数、设置和获取半径的方法、计算圆面积的函数area()以及显示圆的信息的函数show()。 圆柱体类Cylinder进一步继承自圆类,代表一个圆柱体,添加了高度属性height。构造函数接受四个参数,用于初始化所有特性。它包含设置和获取高度的方法、计算圆柱体体积的volume()函数以及显示所有信息的show()函数。此外,文档提到利用支配规则(即多态性),在主函数中,通过cy3这个Cylinder对象直接调用其父类Point和Circle的show()函数,展示圆心坐标和圆底面信息。 在主函数中,创建了三个Cylinder对象cy1、cy2和cy3。cy1使用默认值初始化,cy2则提供初始值,cy3通过拷贝构造函数初始化cy2。文档强调了测试过程,包括显示每个圆柱体的详细信息,并演示了如何修改cy3的底面圆心坐标、半径和高度。 这个C++编程练习着重于理解类的继承、数据封装和访问控制,以及如何通过多态性在不同层次上操作和扩展基类的功能。同时,它还涉及到构造函数、拷贝构造函数、成员函数的使用和调用,以及如何实现类的对象实例化和测试。通过这个练习,学习者可以加深对C++面向对象编程的理解和实践能力。