当前位置:首页 C++ > 正文

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;
}

代码说明:

  1. Shape:基类,定义为虚析构函数以确保正确的析构。

  2. Circle

    • 继承自 Shape,包含半径成员变量。

    • 提供 area 方法计算圆的面积,和 displayArea 方法输出面积。

  3. Cylinder

    • Circle 类派生,增加高度成员变量。

    • 提供 volume 方法计算圆柱的体积,和 displayVolume 方法输出体积。

  4. main 函数

    • 提示用户输入圆的半径和圆柱的高度,并创建 CircleCylinder 对象,调用相应的方法输出面积和体积。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • c++
  • 最新推荐

    热门点击