C++写一个程序,输入矩形的长和宽,使用一个函数计算矩形的面积和周长,最后输出计算结果。要求使用引用类型形式参数(面积和周长)和缺省参数(长和宽,默认求取单位正方形)。 在此基础上实现函数的重载,使其分别可以处理整数型和浮点型的长和宽对应的矩形。
时间: 2024-09-08 21:02:46 浏览: 33
在C++中,你可以创建一个主函数,然后定义两个函数`calculateArea`和`calculatePerimeter`,它们接受长和宽作为引用参数,并返回面积和周长的结果。为了支持整数和浮点型的输入,你可以对这两个函数进行重载。下面是具体的实现:
```cpp
#include <iostream>
using namespace std;
// 函数模板,用于计算面积,接受任意类型的长和宽
template<typename T>
T calculateArea(T& length, T& width) {
return length * width;
}
// 函数模板,用于计算周长,同样接受任意类型的长和宽
template<typename T>
T calculatePerimeter(T& length, T& width) {
return 2 * (length + width);
}
int main() {
// 默认情况,计算单位正方形的面积和周长
int defaultLength = 1, defaultWidth = 1;
cout << "Default square area: " << calculateArea(defaultLength, defaultWidth) << endl;
cout << "Default square perimeter: " << calculatePerimeter(defaultLength, defaultWidth) << endl;
// 输入矩形的长和宽
double customLength, customWidth;
cout << "Enter rectangle length and width (separated by space): ";
cin >> customLength >> customWidth;
// 使用用户输入计算面积和周长
cout << "Rectangle area: " << calculateArea(customLength, customWidth) << endl;
cout << "Rectangle perimeter: " << calculatePerimeter(customLength, customWidth) << endl;
return 0;
}
```
在这个程序中,`calculateArea`和`calculatePerimeter`是函数模板,可以根据传入的参数类型自动选择正确的计算方式。当你需要计算整数型或浮点型矩形的面积和周长时,可以直接使用默认的参数,也可以根据需要提供新的值。