C++函数重载-多种时长转换
时间: 2023-08-09 21:10:17 浏览: 69
当需要进行多种时长转换的时候,我们可以通过函数重载来实现。例如,我们可以定义以下函数:
```
int convertSeconds(int seconds); // 将秒转换为整型的秒数
double convertSeconds(double seconds); // 将秒转换为双精度型的秒数
double convertSeconds(int minutes, int seconds); // 将分钟和秒转换为双精度型的秒数
double convertSeconds(int hours, int minutes, int seconds); // 将小时、分钟和秒转换为双精度型的秒数
```
这些函数都有相同的名称,但是参数类型和个数不同。这样,当我们需要进行不同类型的时长转换时,可以根据需要调用不同的函数。例如,如果我们需要将 100 秒转换为双精度型的秒数,可以调用 `convertSeconds(double seconds)` 函数;如果我们需要将 2 分钟 30 秒转换为双精度型的秒数,可以调用 `convertSeconds(int minutes, int seconds)` 函数。
相关问题
C++函数重载-多种时长转换代码
好的,以下是一个示例代码,用于演示C++函数重载,实现多种时长转换:
```c++
#include <iostream>
using namespace std;
// 将秒数转换为小时数
double toHours(double sec) {
return sec / 3600.0;
}
// 将分钟数转换为小时数
double toHours(int min) {
return min / 60.0;
}
// 将天数转换为小时数
double toHours(short day) {
return day * 24.0;
}
int main() {
double sec = 7200;
int min = 120;
short day = 2;
cout << sec << "秒 = " << toHours(sec) << "小时" << endl;
cout << min << "分钟 = " << toHours(min) << "小时" << endl;
cout << day << "天 = " << toHours(day) << "小时" << endl;
return 0;
}
```
在上面的代码中,我们定义了三个函数 `toHours`,分别用于将秒数、分钟数和天数转换为小时数。这三个函数的参数类型都不同,因此它们可以被重载。
在 `main` 函数中,我们分别调用这三个函数,将秒数、分钟数和天数转换为小时数,并输出结果。
输出结果如下:
```
7200秒 = 2小时
120分钟 = 2小时
2天 = 48小时
```
希望这个示例代码能够帮助您理解C++函数重载的概念。
C++函数重载-多种时长转换利用函数重载,写三个同名的时长转换的函数 transTime,分别完成以下功能: 1 能够把用浮点数表示的时长(单位为分钟),转换成时分秒。 例如:64.5分钟,转换成1小时4分钟30秒 (秒的计算向上取整) 2 能够把时分秒转换成浮点数表示时长,调用roundn函数四舍五入保留2位小数并返回该时长(单位为分钟) 例如:将1小时4分钟30秒,转换成64.5 3 能够把分秒表示的时长,转换成浮点数,调用roundn函数四舍五入保留2位小数并返回该时长(单位为分钟) 例如:将4分钟
好的,以下是一个示例代码,用于演示C++函数重载,实现多种时长转换:
```c++
#include <iostream>
#include <cmath>
using namespace std;
// 将用浮点数表示的时长转换成时分秒
void transTime(double t, int& h, int& m, int& s) {
h = int(t) / 60;
m = int(t) % 60;
s = round((t - int(t)) * 60);
if(s == 60) {
s = 0;
m++;
}
if(m == 60) {
m = 0;
h++;
}
}
// 将时分秒转换成用浮点数表示的时长
double transTime(int h, int m, int s) {
return round((h * 60 + m + s / 60.0) * 100) / 100;
}
// 将分秒表示的时长转换成浮点数
double transTime(int m, int s) {
return round((m + s / 60.0) * 100) / 100;
}
int main() {
// 测试1:将64.5分钟转换成时分秒
int h, m, s;
double t = 64.5;
transTime(t, h, m, s);
cout << t << "分钟 = " << h << "小时" << m << "分钟" << s << "秒" << endl;
// 测试2:将1小时4分钟30秒转换成浮点数表示的时长
double t2 = transTime(1, 4, 30);
cout << "1小时4分钟30秒 = " << t2 << "分钟" << endl;
// 测试3:将4分30秒转换成浮点数表示的时长
double t3 = transTime(4, 30);
cout << "4分30秒 = " << t3 << "分钟" << endl;
return 0;
}
```
在上面的代码中,我们定义了三个函数 `transTime`,分别用于将用浮点数表示的时长转换成时分秒、将时分秒转换成浮点数表示的时长以及将分秒表示的时长转换成浮点数表示的时长。这三个函数的参数类型不同,因此它们可以被重载。
在 `main` 函数中,我们分别调用这三个函数,测试它们的功能,并输出结果。
输出结果如下:
```
64.5分钟 = 1小时4分钟30秒
1小时4分钟30秒 = 64.5分钟
4分30秒 = 4.5分钟
```
希望这个示例代码能够帮助您理解C++函数重载的概念,并实现多种时长转换的功能。