用重载方式编写函数area, 实现(1)计算圆 形面积;(2)计算长方形面积。用c++
时间: 2024-09-14 16:04:17 浏览: 62
c++ 计算圆、长方形、平行四边形面积(应用‘类’‘函数重载’)
在C++中,你可以使用函数重载(Function Overload)的方式编写一个名为`area`的函数,用于计算不同形状的面积。这里是一个简单的例子,展示了如何计算圆形和长方形的面积:
```cpp
#include <cmath> // 引入math库,用于计算圆周率π和平方根
#include <iostream>
// 计算圆形面积的函数
double areaCircle(double radius) {
return M_PI * pow(radius, 2); // πr²
}
// 计算长方形面积的函数
double areaRectangle(double length, double width) {
return length * width;
}
// 函数重载,根据参数类型判断计算哪种形状的面积
double area(const double& value) {
if (std::isfinite(value)) { // 检查是否为数字
return areaCircle(value); // 如果是圆的半径,计算圆形面积
} else if (value >= 0 && value <= 1) { // 如果是0到1之间的数值,假设是矩形宽高比例
return 1 * value; // 面积简化为宽度值
} else {
std::cerr << "Invalid input for either a circle or rectangle!" << std::endl;
return 0;
}
}
int main() {
double circleRadius, rectangleLength, rectangleWidth;
// 输入圆形半径或长宽比
std::cout << "Enter the radius of a circle or the ratio of a rectangle (0 to 1): ";
std::cin >> circleRadius;
// 根据输入调用正确的area函数
double areaResult = area(circleRadius);
// 输出结果
std::cout << "The area is: " << areaResult << std::endl;
return 0;
}
阅读全文