c++设计一个基类,从基类派生圆,从圆派生圆柱,设计成员函数输出它们的面积和体积
作者:野牛程序员:2024-10-28 11:44:44 C++阅读 2464
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

