c++设计一个基类,从基类派生圆,从圆派生圆柱,设计成员函数输出它们的面积和体积
作者:野牛程序员:2024-10-28 11:44:44 C++阅读 2402
c++设计一个基类,从基类派生圆,从圆派生圆柱,设计成员函数输出它们的面积和体积
可以设计一个基类 Shape
,然后从它派生出 Circle
类,最后从 Circle
类派生出 Cylinder
类。每个类都将包含计算面积和体积的成员函数。以下是示例代码:
#include <iostream> #include <cmath> class Shape { public: virtual ~Shape() = default; // 虚析构函数 }; class Circle : public Shape { private: double radius; public: Circle(double r) : radius(r) {} double area() const { return M_PI * radius * radius; // 圆的面积 } void displayArea() const { std::cout << "圆的面积: " << area() << std::endl; } }; class Cylinder : public Circle { private: double height; public: Cylinder(double r, double h) : Circle(r), height(h) {} double volume() const { return area() * height; // 圆柱的体积 } void displayVolume() const { std::cout << "圆柱的体积: " << volume() << std::endl; } }; int main() { double radius, height; std::cout << "请输入圆的半径: "; std::cin >> radius; Circle circle(radius); circle.displayArea(); // 输出圆的面积 std::cout << "请输入圆柱的高度: "; std::cin >> height; Cylinder cylinder(radius, height); cylinder.displayArea(); // 输出圆的面积(继承自 Circle) cylinder.displayVolume(); // 输出圆柱的体积 return 0; }
代码说明:
Shape
类:基类,定义为虚析构函数以确保正确的析构。Circle
类:继承自
Shape
,包含半径成员变量。提供
area
方法计算圆的面积,和displayArea
方法输出面积。Cylinder
类:从
Circle
类派生,增加高度成员变量。提供
volume
方法计算圆柱的体积,和displayVolume
方法输出体积。main
函数:提示用户输入圆的半径和圆柱的高度,并创建
Circle
和Cylinder
对象,调用相应的方法输出面积和体积。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
